2012-04-03 15 views
0

我在UserControl中聲明瞭一個Style。然後我將該UserControl放置在一個窗口中。我如何從窗口的XAML訪問UserControl的樣式?如何訪問UserControl中存在的樣式?

+1

似乎你的設計是錯誤的。如果與不同控件共享的樣式將它放在樹中的元素上面。例如,在應用程序級別或窗口上。 – asktomsk 2012-04-03 14:34:31

+0

這有點奇怪,我很難解釋爲什麼它是這樣的。 – Maximus 2012-04-03 15:21:16

回答

2

資源通過可視化樹進行解析。這不是通常使用樣式的方式。

您可以通過後面的代碼做到這一點:

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

我認爲這將是我做到這一點的唯一方法。我希望有一種方法可以在XAML中做到這一點,但我猜不是。 謝謝! – Maximus 2012-04-03 15:22:26

1

如果你給你的用戶控件的名稱,你可以簡單地用一個ElementName結合來獲得訪問UserControlStyle財產。

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

如果你想從UserControl的風格訪問只是一個單獨的二傳手值,你可以使用類似:

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

希望這有助於!

相關問題