首页 > 解决方案 > DependencyProperty.UnsetValue 不是属性的有效值

问题描述

我的Bootstrapper课堂上有以下代码:

protected override void InitializeShell() {
    Application.Current.MainWindow = (Window)this.Shell; //520
    Application.Current.MainWindow.WindowState = WindowState.Maximized;
    Application.Current.MainWindow.WindowStyle = WindowStyle.None;
    try
    {
        Application.Current.MainWindow.Show(); //720
    }
    catch (ArgumentException exp)
    {
        // avoid RadRibbonWindow.AttachToWindowInteropHandle exceptions when closing window
    }
}

当我的代码命中该行时,Application.Current.MainWindow.Show();我的调试器会捕获异常:

System.InvalidOperationException:“{DependencyProperty.UnsetValue}”不是属性“BorderBrush”的有效值。

我怀疑UnsetValue可能来自WindowStyle.None,但因为AllowTransparency某处是True,这是我被允许使用的唯一窗口样式。

我的谷歌搜索发现的这个问题的其他场合提供了更多细节,但没有一个适合我的场景,我不知道我应该找到和分享哪些其他细节。有人可以帮我完成一些步骤,或者我应该查看的应用程序区域,以进行调试吗?

标签: wpfmvvmprismunity-container

解决方案


我找到了这个 setter:<Setter Property="BorderBrush" Value="{StaticResource ControlOuterBorder_Normal}"/>并且没有找到一条消息ControlOuterBorder_Normal

使用DynamicResource或包含(合并)ResourceDictionary包含的ControlOuterBorder_Normal(或定义它,如果它没有在任何地方定义)。


推荐阅读