私は以下のCntrolTemplateを持っています。このCntrolTemplateには、私が持っているカスタムDataTypeを表示するHierarchicalDataTemplateがあります。 Buttonといくつかのテキストを表示するstackPanelを持つItemsControlです。ItemsControlは次の行に項目をラップしません
私が午前問題は、コンテンツがラップアラウンドし、アイテムの多くが追加されたとき、次の行に移動しないということである。
<ControlTemplate x:Key="MyControlTemplate">
<StackPanel x:Name="MyStackPanel" Orientation="Horizontal" Width="Auto" Margin="0,1,0,1" Background="{x:Null}">
<ItemsControl x:Name="MyItemsControl" Margin="5,0,5,0" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MyClass}}, Path=ItemsSource}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" IsItemsHost="True">
<StackPanel.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVisibility"/>
<HierarchicalDataTemplate DataType="{x:Type local:MyCustomDataType}">
<Button Height="24" MinWidth="16" Width="Auto" Command="{Binding}" Visibility="{Binding RelativeSource={RelativeSource Self}, Path=IsEnabled, Converter={StaticResource BoolToVisibility}}"
Background="Transparent" BorderBrush="Transparent">
<StackPanel Orientation="Horizontal" Height="22" VerticalAlignment="Center">
<Image Height="Auto" Width="Auto" Stretch="Uniform" Source="{Binding Path=IconSource}"
Visibility="{Binding Path=HideInTileGroup, Converter={StaticResource BoolToVisibility}}" Margin="2" VerticalAlignment="Center"/>
<TextBlock Text="{Binding Path=DisplayName}" VerticalAlignment="Center" Width="Auto"
Foreground="{Binding Path=DisplayBrush}"
Visibility="{Binding Path=ShowDisplayName, Converter={StaticResource BoolToVisibility}}" FontSize="12">
</TextBlock>
</StackPanel>
</Button>
</HierarchicalDataTemplate>
</StackPanel.Resources>
</StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</StackPanel>
</ControlTemplate>
は、どのように私はそれがラップアラウンドすることができますか?
編集:私はそうのようWrapPanelにそれを変更したが、まだそれは折り返されません
。
<ControlTemplate x:Key="MyControlTemplate">
<StackPanel x:Name="MyStackPanel" Orientation="Horizontal" Width="Auto" Margin="0,1,0,1" Background="{x:Null}">
<ItemsControl x:Name="MyItemsControl" Margin="5,0,5,0" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MyClass}}, Path=ItemsSource}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel>
<WrapPanel.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVisibility"/>
<HierarchicalDataTemplate DataType="{x:Type local:MyCustomDataType}">
<Button Height="24" MinWidth="16" Width="Auto" Command="{Binding}" Visibility="{Binding RelativeSource={RelativeSource Self}, Path=IsEnabled, Converter={StaticResource BoolToVisibility}}"
Background="Transparent" BorderBrush="Transparent">
<StackPanel Orientation="Horizontal" Height="22" VerticalAlignment="Center">
<Image Height="Auto" Width="Auto" Stretch="Uniform" Source="{Binding Path=IconSource}"
Visibility="{Binding Path=HideInTileGroup, Converter={StaticResource BoolToVisibility}}" Margin="2" VerticalAlignment="Center"/>
<TextBlock Text="{Binding Path=DisplayName}" VerticalAlignment="Center" Width="Auto"
Foreground="{Binding Path=DisplayBrush}"
Visibility="{Binding Path=ShowDisplayName, Converter={StaticResource BoolToVisibility}}" FontSize="12">
</TextBlock>
</StackPanel>
</Button>
</HierarchicalDataTemplate>
</WrapPanel.Resources>
</WrapPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</StackPanel>
StackPanelの代わりにWrapPanelを使用しますか? – Clemens
私の外側のStackPanelはWrapPanelですか?内側のItemsControlを同じに保ちますか? –
私はItemsPanelを意味します。 – Clemens