2010-11-22 8 views
2

Warum funktioniert der folgende Stil nicht? Ich habe an anderen Stellen das exakt gleiche Konstrukt mit verschiedenen Kontrollen und es funktioniert.Warum wird der folgende WPF-Stil nicht angewendet?

Die Verwendung von TargetType="{x:Type Separator}" anstelle von TargetType="Separator" funktioniert auch nicht. Weder verschieben Style oberen in der XAML-Hierarchie. Kann ich die Verwendung von x:Key="styleName" und Style="{StaticResource styleName}" vermeiden?

Aber noch wichtiger, ich versuche zu verstehen, warum eine solche Stilbindung nicht immer funktioniert.

<ToolBar Height="25"> 
    <ToolBar.Resources> 
     <Style TargetType="Separator"> 
      <Setter Property="Margin" Value="15"/> 
     </Style> 
     <Style TargetType="RadioButton"> 
      <Setter Property="Margin" Value="10"/> 
      <Setter Property="Width" Value="50"/> 
     </Style> 
    </ToolBar.Resources> 

    <RadioButton Content="A"/> <!-- NOT APPLIED HERE --> 
    <Separator/>    <!-- NOT APPLIED HERE --> 
    <RadioButton Content="B"/> <!-- NOT APPLIED HERE --> 
</ToolBar> 

Antwort

3

WPFs Toolbar macht mit seinen untergeordneten Steuerelementen einige funky Dinge. Im Gegensatz zu anderen Containern ist es nicht so einfach, einen Style zu definieren, der für einen Typ gilt.

Werfen Sie einen Blick auf diesen Blogpost für einige Informationen, die helfen könnten. Styling controls on a ToolBar.

+0

Ausgezeichneter Artikel auf der ToolBar. Danke für den Link! – jpierson

Verwandte Themen