gpt4 book ai didi

wpf - 如何继承XAML样式并覆盖子元素的属性?

转载 作者:行者123 更新时间:2023-12-02 01:10:15 24 4
gpt4 key购买 nike

我们刚刚开始使用 XAML,仍在解决基本问题:来自CSS,我们希望使用自定义控件模板定义通用按钮样式,然后让第二个样式使用“basedon”继承第一个样式的所有内容。然后,第二个样式应该覆盖诸如“前景色”之类的属性(可以使用)还有我们的自定义模板中子元素的属性,例如包含的边框元素等的“背景颜色”(这不起作用)。

处理此类事情的一般方法是什么?层叠样式可以走多远?

干杯!

最佳答案

您可以使用没有键引用的继承样式:

<Grid>
<Grid.Resources>
<!-- Definition of default appearance of a button -->
<Style TargetType="Button" x:Key="Default">
<Setter Property="Background" Value="Red"></Setter>
<Setter Property="FontFamily" Value="Segoe Black" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="FontSize" Value="32pt" />
<Setter Property="Foreground" Value="#777777" />
</Style>
<!-- Define general style that based is base on the default style of the button without a key reference-->
<Style TargetType="Button" BasedOn="{StaticResource Default}"/>

<!-- In sub style override the properties you need -->
<Style BasedOn="{StaticResource Default}" TargetType="Button" x:Key="SubButton" >
<Setter Property="FontSize" Value="8pt" />
</Style>

</Grid.Resources>

<Button Content="Main" Height="51" HorizontalAlignment="Left" Margin="154,72,0,0" Name="button1" VerticalAlignment="Top" Width="141" />
<Button Content="Sub" Style="{StaticResource SubButton}" Height="51" HorizontalAlignment="Left" Margin="154,162,0,0" Name="button2" VerticalAlignment="Top" Width="141" />
</Grid>

关于wpf - 如何继承XAML样式并覆盖子元素的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3656814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com