当我写这样的东西时:
<Style x:Key="panelS">
<Setter Property="Orientation" Value="Horizontal" />
<Setter Property="DockPanel.Dock" Value="Top" />
</Style>
我收到错误消息:无法解析样式属性'Orientation'。验证拥有类型是Style的TargetType,或使用Class.Property语法指定属性。
当然我有一个Dock面板,其中有许多Stackpanels,所以我想将Stackpanel的属性移动到样式。但是有这个错误,我不太明白它意味着什么,以及解决方法是什么(...我不希望在每个Stackpanel上分配Orientation。)
答案 0 :(得分:7)
您的Style
与StackPanel
类型无关。
因此,WPF不了解Orientation
属性。 (因为该属性由StackPanel
)
您可以通过将属性更改为StackPanel.Orientation
来明确告诉WPF哪个类定义了该属性。
或者,您可以通过向Style
元素添加StackPanel
来将TargetType="StackPanel"
与<Style>
类型相关联。
答案 1 :(得分:3)
尝试将TargetType添加到样式中,以便它知道您正在谈论StackPanels。这个版本应该有效:
<Style x:Key="panelS" TargetType="StackPanel">
<Setter Property="Orientation" Value="Horizontal" />
<Setter Property="DockPanel.Dock" Value="Top" />
</Style>