首页 文章

在XAML Toolkit中使用Material Design时,WPF会覆盖ListViewItem样式

提问于
浏览
2

我在我的项目中安装了XAML Toolkit中的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>

我得到了重写样式,但在这种情况下我在GridView中丢失了类型识别(列包含正确的 Headers ,但值包含调用结果ToString()方法我的模型)

2)我在XAML Toolkit - MaterialDesignGridViewItem中使用Material Design中的具体样式:

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem" BasedOn="{StaticResource MaterialDesignGridViewItem">
        <Setter Property="Background" Value="Green" />
    </Style>
</ListView.ItemContainerStyle>

在这种情况下,我得到了工作解决方案(看起来似乎),但是当我添加触发器时,我会丢失材质样式(只有颜色,没有动画) .

3)在其他情况下,我会丢失所有材质样式并返回到wpf默认样式 .

希望对我们有所帮助 .

1 回答

  • 0
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem" BasedOn="{StaticResource MaterialDesignListBoxItem">
            <Setter Property="Background" Value="Green" />
        </Style>
    </ListView.ItemContainerStyle>
    

    您的扩展样式应基于MaterialDesignListBoxItem,而不是使用MaterialDesignGridViewItem .

相关问题