WinUI UWP - 如何创建继承自它的自定义样式?

WinUI UWP - How to create a custom style that inherits from it?

我已经为 WinUI 添加了 nuget 包,并在 App.xaml 中添加了合并字典,并且新样式确实出现在所有不受 Style 指令影响的控件中。然而,简单地使用 Style 会导致 Style 的设置器应用于原始 UWP 模板而不是 WinUI 模板。例如这段代码:

    <Grid.Resources>
        <Style TargetType="ComboBox">
            <Setter Property="Width" Value="160"/>
        </Style>
    </Grid.Resources>

将导致 ComboBox 出现没有圆角半径且边框比未应用上述情况更粗的边框。

有什么解决办法吗?

要覆盖 WinUI 样式的属性,您可以使用 based-on styles

因此,根据您的具体情况,您可以执行以下操作:

<Style TargetType="ComboBox" BasedOn="{StaticResource DefaultComboBoxStyle}">
    <Setter Property="Width" Value="160"/>
</Style>

这样,您就可以创建一个基于 WinUI 样式(称为 DefaultComboBoxStyle)的新样式,您可以在其中覆盖宽度 属性。