WPF-如何将样式应用于面板中的多个控件
本文关键字:控件 样式 应用于 WPF- | 更新日期: 2023-09-27 17:58:19
我需要将样式应用于Stack Panel中的不同控件。它们都是不同类型的,即TreeView、Listview、ComboBox等。有没有一种方法可以应用StackPanel级别的样式来适用于这些控件。我不想将样式单独应用于这些控件。有什么办法可以做到这一点吗?
谢谢。。
您可以通过在StackPanel资源中声明样式来实现这一点。您必须在没有键的情况下声明每个样式,才能将它们自动应用于StackPanel中的每个目标控件。
<StackPanel>
<StackPanel.Resources>
<!-- Styles declared here will be scoped to the content of the stackpanel -->
<!-- This is the example of style declared without a key, it will be applied to every TreeView. Of course you'll have to add Setters etc -->
<Style TargetType="TreeView">
</Style>
</StackPanel.Resources>
<!-- Content -->
<!-- This treeview will have the style declared within the StackPanel Resources applied to it-->
<TreeView />
</StackPanel>
正如Jean-Louis所说,您可以在StackPanel
资源字典中指定一个Style
,它将仅应用于该StackPanel
中的匹配元素。
为了使单个Style
与所有控件匹配,您需要为所有控件指定一个公共基类的TargetType
,例如Control
<StackPanel>
<StackPanel.Resources>
<Style TargetType="Control">
<!-- Setters etc here -->
</Style>
</StackPanel.Resources>
<!-- Controls here -->
</StackPanel>