2012-04-03 3 views
0

Ich habe einen Style in einem UserControl deklariert. Ich habe dann dieses UserControl in einem Fenster platziert. Wie kann ich vom XAML des Fensters auf den Stil des UserControls zugreifen ???Wie kann auf einen Style zugegriffen werden, der in einem UserControl vorhanden ist?

+1

Scheint, dass dein Entwurf falsch ist. Wenn der Stil mit verschiedenen Steuerelementen geteilt wird, lege ihn auf das Element oben in der Struktur. Auf Anwendungsebene oder Fenster zum Beispiel. – asktomsk

+0

Es ist ein wenig seltsam, schwer für mich zu erklären, warum es so ist. – Maximus

Antwort

2

Ressourcen werden aufgelöst, indem Sie durch den visuellen Baum gehen. Dies ist normalerweise keine Möglichkeit, mit Stilen zu arbeiten.

Sie können es hinter von Code tun:

Style style = (Style)yourUserControl.Resources[YourKeyStyle]; 
+0

Ich denke, das wird der einzige Weg für mich sein, es zu tun. Ich hatte gehofft, dass es in XAML eine Möglichkeit geben würde, genau diesen Ansatz zu verfolgen, aber ich denke nicht. Danke! – Maximus

1

Wenn Sie Ihren Usercontrol einen Namen geben Sie einfach ein ElementName Bindung an erhalten Sie Zugriff auf die Style Eigenschaft s‘UserControl nutzen können.

<Window Title="MainWindow" Height="350" Width="525" 
Style="{Binding ElementName=myUserControl, Path=Style}"> 
    <UserControl Name="myUserControl" > 
     <UserControl.Style> 
      <Style TargetType="Control"> 
       <Setter Property="Background" Value="Yellow" /> 
      </Style> 
     </UserControl.Style> 
    </UserControl> 
</Window> 

Wenn Sie nur einen individuellen Setter Wert von den UserControl ‚s Stil zugreifen wollen Sie so etwas wie verwenden:

<Window Background="{Binding ElementName=myUserControl, Source=Style, Path=Background}"> 

hoffte, das hilft!

Verwandte Themen