2016-03-22 10 views
1

Styleクラスから取得したSetterBaseコレクションからプロパティ名を抽出することはできますか?例えばSetterBaseからSetterプロパティ名を抽出しますか?

、以下のコードで:

  Style style = Application.Current.Resources[ModifierNameMinimalNoPopStyle] as Style; 
      descriptionText.Style = style; 
      var setterCollection = style.Setters; 

私は「fontFamilyが」スタイルがあり、私のコードでそれを使用しているものを抽出したいと思います。

これを行う方法はありますか?

+0

スタイル付きコントロールが同じコンテキストに存在する場合は、プロパティに直接バインドできます。私は好奇心があるのを除いて。スタイルは静的なFontFamilyを持っていますか、それとも何かにバインドされていますか、またはstaticresourceですか?私はそれを動的に取得することは通常必要ではないと思います。 –

+0

クリスおかげさま!これはStaticResourceです。セッターは次のようなものです: Water

答えて

0

ここでは、不要な連鎖を避けるためにあなたの回答に基づいて何をしますか?そのフォントを取って、それを実際のStaticResourceにしてください。

<FontFamily x:Key="SpecialFont">Segoe UI</FontFamily> 

そして、それはどこでも利用可能だし、あなたが今までそれを変更する必要があるならば、あなたはそれからあなたのセッターを変更する例えばによって継承を経由してすべてのインスタンスに反映されますどこでそれを行うための唯一のスポットを持っています。

<Setter Property="FontFamily" Value="Segoe UI" /> 

to;

<Setter Property="FontFamily" Value="{StaticResource SpecialFont}" /> 

ここで他の場所が必要な場合は、実際に静的な場所からStaticResourceとして取得できます。

<Button FontFamily="{StaticResource SpecialFont}" Content="I'm Segoe UI Font"/> 

またはコードビハインド。

this.btn.SetResourceReference(FontFamilyProperty, "SpecialFont"); 

これが役立ちます。

+0

クリスおかげさま!私はこれを試してみましょう。 – Water

+0

こんにちはクリス、yupは私のために働いた。申し訳ありませんがかなり忙しかったです。ありがとう! – Water

関連する問題