Почему я не могу добавить свойство Orientation для Setter Style в WPF - PullRequest
4 голосов
/ 27 мая 2010

Когда я пишу что-то вроде этого:

  <Style x:Key="panelS">
            <Setter Property="Orientation" Value="Horizontal" />
            <Setter Property="DockPanel.Dock" Value="Top" />
  </Style>

Я получаю сообщение об ошибке: Не удается разрешить свойство стиля «Ориентация».Убедитесь, что владельцем является тип TargetType стиля, или используйте синтаксис Class.Property для указания свойства.
Конечно, у меня есть панель Dock с множеством панелей Stack, поэтому я хочу переместить свойства Stackpanel в стиль.Но есть эта ошибка, и я не совсем понимаю, что это значит и что такое обходной путь (.. я хотел не назначать Ориентацию на каждую панель стека).

Ответы [ 2 ]

7 голосов
/ 27 мая 2010

Ваш Style не связан с типом StackPanel.

Поэтому WPF не знает о свойстве Orientation. (Потому что это свойство определяется StackPanel)

Вы можете явно указать WPF, какой класс определяет свойство, изменив его на StackPanel.Orientation.

Кроме того, вы можете связать Style с типом StackPanel, добавив TargetType="StackPanel" к элементу <Style>.

3 голосов
/ 27 мая 2010

Попробуйте добавить TargetType к стилю, чтобы он знал, что вы говорите о StackPanels. Эта версия должна работать:

<Style x:Key="panelS" TargetType="StackPanel">
    <Setter Property="Orientation" Value="Horizontal" />
    <Setter Property="DockPanel.Dock" Value="Top" />
</Style>
...