gpt4 book ai didi

c# - 不止一种控件类型的 WPF StackPanel.Resources setter ?

转载 作者:行者123 更新时间:2023-11-30 14:02:52 24 4
gpt4 key购买 nike

我想使用 setter 为堆栈面板中的所有元素设置默认边距,不仅是按钮,还有文本框和标签。

    <StackPanel>
<StackPanel.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Margin" Value="0,10,0,0"/>
</Style>
</StackPanel.Resources>
...

当我尝试将上面的 Button 更改为 ControlFrameworkElement(每个元素的派生类型)时,它不起作用。

如何解决此问题而不必在 TargetType 上指定内容相同但 x:Type 不同的 2 个不同的 Style 元素?

最佳答案

您可以通过 Style 的 BasedOn 继承来做到这一点属性:

        <StackPanel.Resources>
<Style x:Key="BaseStyle" TargetType="{x:Type FrameworkElement}">
<Setter Property="Margin" Value="0,10,0,0"/>
</Style>

<Style TargetType="{x:Type Label}" BasedOn="{StaticResource BaseStyle}" />
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource BaseStyle}" />
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource BaseStyle}" />

</StackPanel.Resources>

关于c# - 不止一种控件类型的 WPF StackPanel.Resources setter ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018049/

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