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)的新样式,您可以在其中覆盖宽度 属性。
我已经为 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)的新样式,您可以在其中覆盖宽度 属性。