WPF Expander OverrideMetadata IsExpandedProperty
WPF Expander OverrideMetadata IsExpandedProperty
我正在尝试覆盖 IsExpanded 属性 的扩展器上的默认值。
到目前为止我的代码不起作用:
static MyExpander()
{
IsExpandedProperty.OverrideMetadata(typeof(MyExpander), new FrameworkPropertyMetadata(true));
}
不过,属性 仍然设置为 false(我这样检查以确保):
public MyExpander()
{
System.Console.WriteLine($"IsExpanded default value is: {IsExpandedProperty.DefaultMetadata.DefaultValue}");
}
编辑: 没关系,我只是很愚蠢,我确实在样式中将 属性 设置为 false ...现在一切正常,谢谢反正答案:)
检查实际值而不是 DefaultMetadata
中的 DefaultValue
:
public MyExpander()
{
Debug.WriteLine($"IsExpanded value: {IsExpanded}");
}
来自 MSDN DependencyProperty.DefaultMetadata Property 页面的备注部分:
The default metadata is the property metadata that is available to
that particular object or an object of a derived type where no
alternative metadata was supplied by an explicit Register or
OverrideMetadata call.
顾名思义,DefaultMetadata
不会 return 覆盖的元数据。
我正在尝试覆盖 IsExpanded 属性 的扩展器上的默认值。
到目前为止我的代码不起作用:
static MyExpander()
{
IsExpandedProperty.OverrideMetadata(typeof(MyExpander), new FrameworkPropertyMetadata(true));
}
不过,属性 仍然设置为 false(我这样检查以确保):
public MyExpander()
{
System.Console.WriteLine($"IsExpanded default value is: {IsExpandedProperty.DefaultMetadata.DefaultValue}");
}
编辑: 没关系,我只是很愚蠢,我确实在样式中将 属性 设置为 false ...现在一切正常,谢谢反正答案:)
检查实际值而不是 DefaultMetadata
中的 DefaultValue
:
public MyExpander()
{
Debug.WriteLine($"IsExpanded value: {IsExpanded}");
}
来自 MSDN DependencyProperty.DefaultMetadata Property 页面的备注部分:
The default metadata is the property metadata that is available to that particular object or an object of a derived type where no alternative metadata was supplied by an explicit Register or OverrideMetadata call.
顾名思义,DefaultMetadata
不会 return 覆盖的元数据。