本文告诉大家如何通过修改 ItemContainerStyle 让 ListView 或 ListBox 的选择效果如鼠标移动到未选中项的效果或选择项的背景 先写一些简单的代码用于界面的绑定 public </DataTemplate> </ListView.ItemTemplate> </ListView> 通过写样式在 ItemContainerStyle 在 ListView 使用刚才写的样式,运行代码可以看到下面图片 <ListView ItemsSource="{Binding Items}" ItemContainerStyle
本文告诉大家如何通过修改 ItemContainerStyle 让 ListView 或 ListBox 的选择效果如鼠标移动到未选中项的效果或选择项的背景 先写一些简单的代码用于界面的绑定 public </DataTemplate> </ListView.ItemTemplate> </ListView> 通过写样式在 ItemContainerStyle 在 ListView 使用刚才写的样式,运行代码可以看到下面图片 <ListView ItemsSource="{Binding Items}" ItemContainerStyle /53557393/6116637 ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/WPF-%E4%BF%AE%E6%94%B9-ItemContainerStyle
数据绑定做完后,我还想在一开始加载就屏开TreeView中的所有项,其实这个只需要设置一下ItemContainerStyle的Style就可以了,如下 <TreeView.ItemContainerStyle TreeViewItem}"> <Setter Property="IsExpanded" Value="True" /> </Style> </TreeView.ItemContainerStyle
<ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> Value="Stretch"></Setter> </Style> </ListView.ItemContainerStyle
现在就来添加一个WPF TabControl,并应用ItemContainerStyle。 --> </Style> <Style x:Key="<em>ItemContainerStyle</em>" TargetType="TabItem"> <Setter DataTemplate> </Window.Resources> <Grid> <TabControl Grid.Row="0" ItemsSource="{Binding Data}" ItemContainerStyle ="{StaticResource ItemContainerStyle}" ContentTemplate="{StaticResource ContentTemplate}" /> </Grid
要我们的ListView的Item有和ListView一样的宽度可以简单设置ItemContainerStyle <ListView.ItemContainerStyle Value="Stretch" /> </Style> </ListView.ItemContainerStyle ApplicationPageBackgroundThemeBrush}"> <ListView ItemsSource="{x:Bind View.Str}"> <ListView.ItemContainerStyle VerticalContentAlignment" Value="Stretch"></Setter> </Style> </ListView.ItemContainerStyle
他使用的是 GridView 做的,于是我告诉他需要自己写 ItemContainerStyle 在 GridViewRowPresenter 里添加右键的逻辑。 只需要通过 ItemContainerStyle 设置给 ListView 的每一项就可以了,如下面代码 <ListView Style="{x:Null}" ItemsSource="{Binding Path=DownloadFileInfoList}"> <ListView.ItemContainerStyle> <Style TargetType="{x:Type ListViewItem Binding AddedTime}"/> </GridView> </ListView.View> </ListView> 可以看到,主要的代码如下 <ListView.ItemContainerStyle > 通过 ItemContainerStyle 设置一个样式,在样式里面更改 ContextMenu 的内容就可以了,代码量十分少 还有一个问题是如何让右键菜单知道当前点的哪一项?
<ListView ItemsSource="{x:Bind View.Str}"> <ListView.ItemContainerStyle> <Style TargetType Property="VerticalContentAlignment" Value="Center"></Setter> </Style> </ListView.ItemContainerStyle
BorderThickness="0" ItemTemplateSelector="{StaticResource ItemTemplateSelector}"> <GridView.ItemContainerStyle <Setter Property="Margin" Value="0, 0, 0, 32"/> </Style> </GridView.ItemContainerStyle BorderThickness="0" ItemTemplateSelector="{StaticResource ItemTemplateSelector}"> <GridView.ItemContainerStyle <Setter Property="Margin" Value="0, 0, 0, 32"/> </Style> </GridView.ItemContainerStyle
在“编辑其他模板”中有 ItemTemplate,ItemContainerStyle,ItemsPanel 三个选项。 ItemContainerStyle 是容器的样式,说白了就是 ListView 中的 Item 的显示样式,像 Width,Background 等都可以在其中定制。 ItemsSource="{x:Bind Books}" ItemTemplate="{StaticResource DataTemplate}" ItemContainerStyle
.> <ListView.ItemContainerStyle> <Style TargetType="{x:Type ListViewItem}"> < Color="Transparent"/> </Style.Resources> </Style> </ListView.ItemContainerStyle
SampleDataSource}, Path=SamplePlaceItemCollection}" Margin="10" BorderThickness="0"> <sdk:TreeView.ItemContainerStyle <Setter Property="IsExpanded" Value="True"/> </Style> </sdk:TreeView.ItemContainerStyle " IsRootLinesEnabled="True" IsTriStateMode="True" Margin="10"> <telerik:RadTreeView.ItemContainerStyle Setter Property="IsExpanded" Value="True"/> </Style> </telerik:RadTreeView.ItemContainerStyle
ListView 宽度 使用下面的代码可以让 WPF 的 ListView 的 Item 宽度和他一样 HorizontalContentAlignment="Stretch" 或 <ListBox.ItemContainerStyle <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> </Style> </ListBox.ItemContainerStyle
True"/> </ItemsPanelTemplate> </ListView.ItemsPanel> <ListView.ItemContainerStyle </Setter.Value> </Setter> </Style> </ListView.ItemContainerStyle
其实简单UWP ListView宽度过小,可以通过下面代码修改 <ListView.ItemContainerStyle> <Style Value="Stretch"></Setter> </Style> </ListView.ItemContainerStyle
设置 ListView 列表项宽度 默认 ListViewItem 是宽度压缩,在 ListView 添加代码 <ListView.ItemContainerStyle HorizontalContentAlignment" Value="Stretch"/> </Style> </ListView.ItemContainerStyle
<TreeViewItem Header="MatrixTransform"/> </TreeViewItem> <TreeView.ItemContainerStyle Selected] = [Action item_SelectedItemChanged($source,$eventArgs)]"/> </Style> </TreeView.ItemContainerStyle
"10"/> </ItemsPanelTemplate> </ListBox.ItemsPanel> <ListBox.ItemContainerStyle </Setter.Value> </Setter> </Style> </ListBox.ItemContainerStyle
> <WrapPanel /> </ItemsPanelTemplate> </ListView.ItemsPanel> <ListBox.ItemContainerStyle <Setter Property="HorizontalContentAlignment" Value="Stretch" /> </Style> </ListBox.ItemContainerStyle
ListView 宽度 使用下面的代码可以让 WPF 的 ListView 的 Item 宽度和他一样 HorizontalContentAlignment="Stretch" 或 <ListBox.ItemContainerStyle <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> </Style> </ListBox.ItemContainerStyle