gpt4 book ai didi

wpf - 能否为一种 XAML 样式定义多个 TargetType?

转载 作者:行者123 更新时间:2023-12-03 05:42:17 25 4
gpt4 key购买 nike

在 HTML/CSS 中,您可以定义可应用于多种类型元素的样式,例如:

.highlight {
color:red;
}

可以应用于 P 和 DIV,例如:

<p class="highlight">this will be highlighted</p>
<div class="highlight">this will also be highlighted</div>

但在 XAML 中,您似乎必须为样式定义 TargetType,否则会出现错误:

<Style x:Key="formRowLabel" TargetType="TextBlock">

是否有办法允许将 XAML 样式应用于多个元素,甚至像在 CSS 中一样将其保持打开状态?

最佳答案

WPF 样式中的 setter 在编译时进行检查; CSS 样式是动态应用的。

您必须指定一个类型,以便 WPF 可以将 setter 中的属性解析为该类型的依赖属性。

您可以将目标类型设置为包含所需属性的基类,然后将该样式应用于派生类。例如,您可以为 Control 对象创建样式,然后将其应用于多种类型的控件(按钮、文本框、复选框等)

<Style x:Key="Highlight" TargetType="{x:Type Control}">
<Setter Property="Foreground" Value="Red"/>
</Style>

...

<Button Style="{StaticResource Highlight}" Content="Test"/>
<TextBox Style="{StaticResource Highlight}" Text="Test"/>
<CheckBox Style="{StaticResource Highlight}" Content="Test"/>

关于wpf - 能否为一种 XAML 样式定义多个 TargetType?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/802658/

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