2017-02-07 6 views
1

ShowKeyboardCuesPropertyという名前のプロパティを取得できます。これは、KeyboardNavigationクラスにある添付された依存プロパティです。バッキングCLRプロパティを持たない内部静的DPです。Reflectionで添付プロパティの値を設定する

(typeof(KeyboardNavigation).GetMember("ShowKeyboardCuesProperty", MemberTypes.All, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static)[0] as FieldInfo) 

この添付プロパティは、参照を簡単に取得できる別の要素に設定する必要があります。その要素をDependencyObjectとして参照してください。

d.SetValue()を呼び出し、上記の(FieldInfoの)プロパティをtrueに設定するにはどうすればよいですか?

私は同じことを達成できる他の方法はありますか?

+0

添付プロパティは、厳密にはXAMLの機能です。これは、Windows APIプログラミングとは無関係です。 – IInspectable

答えて

1

これを試してみてください:

FieldInfo fi = (typeof(KeyboardNavigation).GetMember("ShowKeyboardCuesProperty", 
    MemberTypes.All, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static)[0] as FieldInfo); 

DependencyObject o = new Button(); 

DependencyProperty dp = fi.GetValue(o) as DependencyProperty; 
bool value = (bool)o.GetValue(dp); //= false 
o.SetValue(dp, true); 
value = (bool)o.GetValue(dp); // = true 
+0

ガイダンスをありがとうございます。 – Harsha

関連する問題