as9*_*s94 5 wpf styles listviewitem material-design-in-xaml
我将XAML工具包中的Material Design安装到了我的项目中。我有ListView本身包含GridView(带有GridViewColumns),我想重写此表中每一行的样式。但是在每种情况下,我都会从XAML Toolkit中的Material Design中丢失样式。
我尝试做几件事:
1)根据目标类型覆盖现有样式:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem" BasedOn="{StaticResource {x:Type ListViewItem}}">
<Setter Property="Background" Value="Green" />
</Style>
</ListView.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)
我有重载的样式,但是在这种情况下,我在GridView中失去类型识别(列包含正确的标题,但是值包含模型的调用结果ToString()方法)
2)我使用了XAML Toolkit中的Material Design中的具体样式-MaterialDesignGridViewItem:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem" BasedOn="{StaticResource MaterialDesignGridViewItem">
<Setter Property="Background" Value="Green" />
</Style>
</ListView.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我得到了工作解决方案(似乎),但是当我确实添加触发器时,我失去了材质样式(仅获得颜色,而没有动画)。
3)在其他情况下,我会丢失所有材质样式,并返回到WPF默认样式。
希望对我们有所帮助。
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem" BasedOn="{StaticResource MaterialDesignListBoxItem">
<Setter Property="Background" Value="Green" />
</Style>
</ListView.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)
您的扩展样式应基于 MaterialDesignListBoxItem,而不是使用 MaterialDesignGridViewItem。
| 归档时间: |
|
| 查看次数: |
2925 次 |
| 最近记录: |