2013-06-03 24 views
6

Yardım isteyebilirken, kendim çözemiyorum. GUI'nin çoğunlukla dinamik olarak oluşturulduğu WPF-XAML masaüstü uygulamasında çalışıyorum.WPF XAML WrapPanel ListBoxbir satırdaki öğeler

Sorgum, ListBox öğelerini içeren WrapPanel stilini dikkate alır. Yukarıdaki kod

<DockPanel x:Name="xResultPanel"> 
    <ListView x:Name="bResultPanel" ItemsSource="{Binding ResultList, UpdateSourceTrigger=PropertyChanged}"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
     <Expander Header="{Binding GroupName}" Style="{DynamicResource FeatureExpander2}"> 
      <WrapPanel ItemWidth="140" Orientation="Horizontal"> 
      <ListBox x:Name="ListOfTiles" ItemsSource="{Binding VideoSamples}"> 
       <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Width="120" Margin="10" HorizontalAlignment="Left"> 
        <Image /> 
        <TextBlock /> 
        </StackPanel 
       </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 
      </WrapPanel> 
     </Expander> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
    </ListView> 
</DockPanel> 

ListBox öğeler üst üste değil sundu verir, ancak yeni hat her öğe:

(.xaml) benim usercontrol gelen bir kod parçası bulabilirsiniz. WrapPanel ve ListBox için MinWidth, Width vb. Ayarlamaya çalıştım ancak sonuç yok.

WrapPanel'in içeriğini yatay olarak doldurmaya zorlamak için tüm ilgili ipuçları için şimdiden teşekkür ederiz.

cevap

11

Sorun şu ki, WrapPanel ürününüzün yalnızca bir çocuğu var: ListBox. Bu, düzenin ListBox'un ItemsPanel şablonu tarafından yapıldığı anlamına gelir.

yerine bu deneyin:

<Expander Header="{Binding GroupName}" Style="{DynamicResource FeatureExpander2}"> 
     <ListBox x:Name="ListOfTiles" ItemsSource="{Binding VideoSamples}"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
      <StackPanel Width="120" Margin="10" HorizontalAlignment="Left"> 
       <Image /> 
       <TextBlock /> 
      </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
     <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 
      <WrapPanel /> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel> 
     </ListBox> 
    </Expander> 
+0

teşekkürler çok, Daniel! Sorunumu çözdü :) – zyjespox