2016-04-08 18 views
0

ListBox'ta çok satırlı satır yapmaya çalışıyorum. bu benim için işe değil,ListBox'ta (TextBox öğesi) çok satırlı metinler nasıl oluşturulur?

<ListBox Grid.Row="1" x:Name="lbKeyPhrases" BorderBrush="Gray" 
     ItemsSource="{Binding Templates}"           
     IsSynchronizedWithCurrentItem="True" 
     Focusable="True"                 
     ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
     ScrollViewer.VerticalScrollBarVisibility="Auto" 
     HorizontalContentAlignment="Stretch" Grid.ColumnSpan="2"           
     > 
    <ListBox.ContextMenu> 
     <ContextMenu> 
      <MenuItem Header="Add Word" Click="MenuItem_Click"> 
       <Image Source="/SomeProj.UI.Resources;component/PNGImages/ItemAdd.png"/> 
      </MenuItem> 
     </ContextMenu> 
    </ListBox.ContextMenu> 

    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <DockPanel> 
       <Border x:Name="brRow" BorderThickness="1" BorderBrush="LightGray" 
         Background="WhiteSmoke" 
         HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
        <TextBox x:Name="tblbRow" 
          Text="{Binding Text,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
          Tag="{Binding}" 
          GotFocus="tblbRow_GotFocus" 
          AcceptsReturn="True"          
          TextWrapping="Wrap" Margin="2" 
          Focusable="True" 
          Background="Transparent" 
          HorizontalAlignment="Stretch" 
          ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
          > 
         <TextBox.ContextMenu> 
          <ContextMenu> 
           <MenuItem Header="Remove Word" 
              Click="MenuItem_Click_RemoveTemplate"> 
            <Image Source="/SomeProj.UI.Resources;component/PNGImages/ItemDel.png"/> 
           </MenuItem> 
          </ContextMenu> 
         </TextBox.ContextMenu> 
        </TextBox> 
       </Border> 
      </DockPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Ama görünüyor edilir:

Yani, this question okuyun ve bu xaml olun. TextBlock yerine TextBox kullanıyorum çünkü satırı düzenlemem gerekiyor. Bu yüzden, metin satırının çok büyük olmasını isterim, mulitile gider.

Ve Scroll değil dipose (ancak olmalıdır).

Nasıl yapılacağını bana söyleyebilir misiniz?

P.S. Scroll'un elden çıkarılmadığı görülüyor, çünkü başka bir Kılavuzdan geliyor.

+0

XAML'niz düzgün çalışıyor gibi görünüyor ... "TextBox" unuza izin vermeyen başka bir şey (yani bir stil) olmadığından emin misiniz? –

+0

@IlVic, Üst Izgarada, ScrollViewer.HorizontalScrollBarVisibility = "Otomatik", ScrollViewer.CanContentScroll = "True" –

+1

Sarılması gerektiği kadar uzun olduğunda yatay kaydırma çubuğu görünüyor mu? (Beni görmezden gel, ScrollViewer.HorizontalScrollBarVisibility = "Devre dışı" olduğunu fark ettim) – Joe

cevap

1

istediği gibi bir cevap olarak benim comment: Bu en çok sarma gerektiğini yeterince uzun olsun

yatay kaydırma çubuğu görünüyor mu? Sarma, içerik ScrollViewer'da istediği kadar ölçeklendirilebildiğinden oluşmuyor. Sarma, tüm yatay alanı dolduran kontrole sekonder olarak gelir, böylece kaydırılmasına izin vermek, sonsuz bir alan tüketmesini sağlar.

Ayar: sizin metin kutusu (ListBox) içeren kontrolünde

ScrollViewer.HorizontalScrollBarVisibility="Disabled" 

bu durumun ortaya çıkmaması gerekir.

0

@Joe haklıydı: üst ızgarada ScrollView.HorizontalBarVisible:Auto var, bu yüzden onu Disable olarak değiştirdim ve işe yarıyor!

+0

Harika, kodunuzu tamamen yanlış okumalıyım çünkü kontrol ettiğimi sandım ve ScrollViewer.HorizontalScrollBarVisibility = "Devre dışı bıraktığınızı gördüm ". Sevindim yine de yorum yaptı! – Joe

+0

@Joe, kendi cevabınızı yazabilir ve doğru cevabı verdiğim için tavsiyeniz bana yardımcı olur. –

+0

emin, teklif için teşekkürler! – Joe

İlgili konular