xaml - WinUI UWP - 如何创建继承自它的自定义样式?
问题描述
我已经为 WinUI 添加了 nuget 包,并在 App.xaml 中添加了合并的字典,并且所有不受Style
指令影响的控件都会出现新样式。然而,简单的使用Style
会导致 SetterStyle
应用于原始 UWP 模板而不是 WinUI 模板。例如这段代码:
<Grid.Resources>
<Style TargetType="ComboBox">
<Setter Property="Width" Value="160"/>
</Style>
</Grid.Resources>
将导致 ComboBoxes 出现没有圆角半径并且比不应用上述内容时具有更厚的边框。
有什么解决办法吗?
解决方案
要覆盖 WinUI 样式的属性,可以使用基于样式。
因此,在您的具体情况下,您可以执行以下操作:
<Style TargetType="ComboBox" BasedOn="{StaticResource DefaultComboBoxStyle}">
<Setter Property="Width" Value="160"/>
</Style>
这样,您将创建一个基于 WinUI 样式(称为 DefaultComboBoxStyle)的新样式,您可以在其中覆盖 width 属性。
推荐阅读
- python - 在嵌套的 for 循环中过滤子数据框
- excel - 使用列中的值作为 json 请求的参数并组合表
- apache-kafka - 在 Streams 应用的所有实例中使用某个主题的所有消息
- css - 如何将 div 内的按钮与绝对位置居中对齐?
- react-native - React Native ScrollView 不会使用 ViewPager 或 createMaterialTopTabNavigator 滑动
- android - Android WebView 输入类型=文件禁用从库中选择
- python - 如何检查数组是否在 3 旁边包含 3?
- python - 如何规范化 Pandas 中的范围?
- tcp - iperf3 - TCP 测量中 Retr 列的含义
- html - 我的 svg 图像图标隐藏在我的 css 容器后面