我能够获得一个名为ShowKeyboardCuesProperty的属性,它是KeyboardNavigation类中存在的附加依赖属性。它是一个内部静态DP,没有后备CLR属性。
(typeof(KeyboardNavigation).GetMember("ShowKeyboardCuesProperty", MemberTypes.All, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static)[0] as FieldInfo)
我需要在另一个可以轻松获取引用的元素上设置这个附加属性。让我们将该元素称为DependencyObject d。
如何调用d.SetValue()并将上面附加的属性(从FieldInfo)设置为true?
或者还有其他方法可以实现同样的目标吗?
答案 0 :(得分: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