为什么我不能将Orientation属性添加到WPF中的样式设置器

时间:2010-05-27 13:50:36

标签: c# wpf styles stackpanel

当我写这样的东西时:

  <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。)

2 个答案:

答案 0 :(得分:7)

您的StyleStackPanel类型无关。

因此,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>