C# WPF覆盖依赖项属性metdata不工作
我需要监视WPF窗口上最顶层的propertyvalue更改。我在写这样的东西:C# WPF覆盖依赖项属性metdata不工作,c#,.net,wpf,C#,.net,Wpf,我需要监视WPF窗口上最顶层的propertyvalue更改。我在写这样的东西: static MainWindow() { TopmostProperty.OverrideMetadata(typeof(Window), new PropertyMetadata(new PropertyChangedCallback(Changed))); } public MainWindow() {
static MainWindow()
{
TopmostProperty.OverrideMetadata(typeof(Window), new PropertyMetadata(new PropertyChangedCallback(Changed)));
}
public MainWindow()
{
InitializeComponent();
}
private static void Changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
throw new NotImplementedException();
}
但我有一个例外:
对与指定绑定约束匹配的类型“WpfApplication4.MainWindow”调用构造函数时引发异常。“行号“4”和行位置“9”。“两个错误:
OverrideMetadata
的第一个参数必须是您的类型TopmostProperty.OverrideMetadata(
typeof(MainWindow),
new FrameworkPropertyMetadata(Changed));
OverrideMetadata
的第一个参数必须是您的类型TopmostProperty.OverrideMetadata(
typeof(MainWindow),
new FrameworkPropertyMetadata(Changed));
阅读InnerException。您编写了显式抛出异常的代码。当它完全按照您的要求执行时,为什么您会感到惊讶?阅读InnerException。您编写了显式抛出异常的代码。当它完全按照您的要求执行时,为什么您会感到惊讶?我不知道#2-它是否有文档记录?@AdiLester See:
对于现有属性(AddOwner或OverrideMetadata调用),您应该始终使用原始注册使用的元数据类型进行重写
。我不知道#2-它在任何地方都有文档记录吗?@AdiLester请参阅:对于现有属性(AddOwner或OverrideMetadata调用),应始终使用原始注册使用的元数据类型进行覆盖
。