使用WrapPanel样式化ListView.GroupStyle
||
好的,这是我的简单问题。
我设置了一个“ 0”样式,以使其看起来像Windows资源管理器。
现在,我想将项目分组。因此,我定义了
GroupStyle
和an2ѭ进行分组。分组现在很好。
我现在不喜欢的是,我的ListView
将每个组显示在单独的行上,而我想进行一些扩展器包装,以便在同一行上显示许多组。
我猜图像比文字更好。
这是我所拥有的:
这是我想要的:
我找不到为使ѭ4适应WrapPanel而必须设置样式的属性,就像我为商品所做的那样。
这是我的ListView样式:
<ResourceDictionary>
<!-- Explorer-style layout-->
<DataTemplate x:Key=\"ExplorerView\">
<StackPanel Orientation=\"Horizontal\" Height=\"Auto\" Width=\"150\">
<Image Source=\"{Binding Path=Value.AppConfig.Appli.AppType, Converter={StaticResource TypeToIconConverter}}\" Margin=\"5\"
Height=\"50\" Width=\"50\"/>
<StackPanel VerticalAlignment=\"Center\" Width=\"90\">
<TextBlock Text=\"{Binding Path=Value.AppConfig.Appli.AppName}\"
FontSize=\"13\" HorizontalAlignment=\"Left\" TextWrapping=\"WrapWithOverflow\"
Margin=\"0,0,0,1\" />
<TextBlock Text=\"{Binding Path=Value.AppConfig.Appli.AppType}\" FontSize=\"9\"
HorizontalAlignment=\"Left\" Margin=\"0,0,0,1\" />
</StackPanel>
</StackPanel>
</DataTemplate>
<!-- Group header style-->
<Style x:Key=\"GroupHeaderStyle\" TargetType=\"{x:Type GroupItem}\">
<Setter Property=\"Template\">
<Setter.Value>
<ControlTemplate TargetType=\"{x:Type GroupItem}\">
<Expander x:Name=\"exp\" IsExpanded=\"True\" Width=\"310\"
BorderBrush=\"CornflowerBlue\">
<Expander.Header>
<DockPanel HorizontalAlignment=\"Stretch\" VerticalAlignment=\"Stretch\"
Background=\"CornflowerBlue\" x:Name=\"expContent\"
Width=\"{Binding RelativeSource={RelativeSource
Mode=FindAncestor, AncestorType={x:Type Expander}},
Path=Width}\"
Height=\"{Binding RelativeSource={RelativeSource
Mode=FindAncestor, AncestorType={x:Type ToggleButton}},
Path=ActualHeight}\">
<CheckBox IsChecked=\"False\" DockPanel.Dock=\"Right\"/>
<TextBlock Text=\"{Binding Path=Name}\" Foreground=\"White\"
FontWeight=\"Bold\" HorizontalAlignment=\"Center\" />
</DockPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
<!-- (...) -->
<ListView ItemsSource=\"{Binding GroupedConfig, Mode=TwoWay}\"
ItemTemplate=\"{StaticResource ExplorerView}\">
<ListView.ItemsPanel>
<ItemsPanelTemplate >
<WrapPanel Width=\"{Binding (FrameworkElement.ActualWidth),
RelativeSource={RelativeSource
AncestorType=Expander}}\"
ItemWidth=\"{Binding (ListView.View).ItemWidth,
RelativeSource={RelativeSource AncestorType=ListView}}\"
ItemHeight=\"{Binding (ListView.View).ItemHeight,
RelativeSource={RelativeSource AncestorType=ListView}}\" />
<!--MinWidth=\"{Binding ItemWidth,
RelativeSource={RelativeSource Self}}\"-->
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.GroupStyle>
<GroupStyle ContainerStyle=\"{StaticResource GroupHeaderStyle}\" />
</ListView.GroupStyle>
</ListView>
有任何想法吗?
我试图以为GroupItem
定义的样式插入一些适当的Setter
,但是我开始认为这不是正确的方法。
谢谢!
没有找到相关结果
已邀请:
2 个回复
桑娠贯涤
中有一个属性
,可以在其中添加所需的
:
好按紊叉
在我的转换器中,我只需减去30就可以考虑标头的高度。 这是完整的代码:
希望这可以帮助节省一些时间!