views:

53

answers:

2

When i write something like this:

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

I get the error that says: Cannot resolve the Style Property 'Orientation'. Verify that the owning type is the Style's TargetType, or use Class.Property syntax to specify the Property.
Sure i have a Dock panel with many Stackpanels in it so i want to move Stackpanel's properties to the style. But there is this error and i dont quite understand what it means and what is the workaround(..i'd wanted not to assign Orientation on every Stackpanel).

+3  A: 

Your Style isn't associated with the StackPanel type.

Therefore, WPF doesn't know about the Orientation property. (Because that property is defined by StackPanel)

You can explicitly tell WPF which class defines the property by changing it to StackPanel.Orientation.

Alternatively, you can associate the Style with the StackPanel type by adding a TargetType="StackPanel" to the <Style> element.

SLaks
+2  A: 

Try adding a TargetType to the style, so that it knows you are talking about StackPanels. This version should work:

<Style x:Key="panelS" TargetType="StackPanel">
    <Setter Property="Orientation" Value="Horizontal" />
    <Setter Property="DockPanel.Dock" Value="Top" />
</Style>
Ben Collier
OOps, forgot about it! Thank you!
nihi_l_ist