【问题标题】:UWP/XAML: How to inherit from the default styles using BasedOn?UWP/XAML:如何使用 BasedOn 从默认样式继承?
【发布时间】:2016-05-20 09:27:19
【问题描述】:
微软官方article 表示:
修改默认系统样式
您应该尽可能使用来自 Windows 运行时默认 XAML 资源的样式。当您必须定义自己的样式时,请尽可能将您的样式基于默认样式(如前所述使用基于样式,或从编辑原始默认样式的副本开始)。
我知道您可以从MSDN 复制和粘贴默认样式,以便“从编辑原始副本开始”。然而,这让我觉得非常丑陋和不雅,因为即使我只想添加一件事,我也粘贴了将近 100 行。
我喜欢“使用基于样式”以通过引用包含所有默认样式的想法,但据我所知,Microsoft 提供的原始默认样式是隐含的。鉴于它们没有引用它们的密钥,如何使用BasedOn?
【问题讨论】:
标签:
xaml
windows-runtime
uwp
【解决方案1】:
你说得对,BasedOn 不能使用默认样式,因为它们是隐式的。
但是,如果您只是想编辑某些属性,则不必包含完整的样式代码。
例如,下面的 Button 将继承 default 样式中的所有内容,除了将 Background 颜色更改为 Red。
<Page.Resources>
<Style x:Key="RedButtonStyle"
TargetType="Button">
<Setter Property="Background"
Value="Red" />
</Style>
</Page.Resources>
<Grid>
<Button Content="Red" Style="{StaticResource RedButtonStyle}" />
</Grid>