2012-04-03 6 views
0

私はUserControl内で宣言されたスタイルを持っています。その後、そのUserControlをWindowに配置しました。ウィンドウのXAMLからUserControlのスタイルにアクセスするにはどうすればよいですか?UserControlに存在するスタイルにアクセスするには?

+1

あなたのデザインが間違っているようです。異なるコントロールと共有されたスタイルがツリーの上の要素に配置されている場合。たとえば、アプリケーションレベルまたはウィンドウ上。 – asktomsk

+0

なぜこれがこのようなのか説明するのは難しいです。 – Maximus

答えて

2

リソースは、ビジュアルツリーを上に行くことで解決されます。これは通常、スタイルを扱う方法ではありません。

あなたは背後にあるコードでそれを行うことができます:あなたは、ユーザーコントロールにあなたが単にUserControlStyleプロパティへのアクセスを得るために結合ElementNameを使用することができます名前を付けた場合

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

これは私がこれを行う唯一の方法だと思います。私はXAMLでこの厳密なアプローチを行う方法があることを期待していましたが、そうは思わないでしょう。 ありがとう! – Maximus

1

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

希望は、このことができます!

関連する問題