我有一个奇怪的错误,我尝试调试时没有运气。

我将显示某些内容的hwndhost子类化,在该类中我将以下功能设置为全屏显示:

    private void SetFullScreen(bool enable)
    {
        if (enable)
        {
            fs = new Window();
            fs.ResizeMode = ResizeMode.NoResize;
            fs.WindowState = System.Windows.WindowState.Maximized;
            fs.WindowStyle = System.Windows.WindowStyle.None;
            fs.Topmost = true;
            fs.PreviewKeyDown += delegate(object sender, KeyEventArgs e) {
                if (e.Key==Key.Escape)
                    FullScreen = false;
            };
            fs.Show();
        }
        else
        {
            fs.Close();
            fs = null;
        }
    }


在我的原型WPF应用程序中,这很好用,但是当我在主应用程序中使用此代码时,关闭窗口(退出键)并在fs.close()调用时出现此错误:

'{DependencyProperty.UnsetValue}' is not a valid value for property 'FocusVisualStyle'.

奇怪的是,它在窗口关闭后约1500ms发生。我试过将fs上的FocusVisualStyle设置为null,但看起来像其他东西。胆量感觉是它试图在我的应用程序中集中另一个不具有此属性的元素,但实际上我不知道!

谢谢!

编辑。问题是我全屏按钮上的FocusVisualStyle的自定义设置。我设置为{x:Null},问题消失了。

最佳答案

我的猜测是,当您关闭提到的窗口时获得焦点的控件具有您设置的自定义样式,其中不包含任何FocusVisualStyle。

因此,为进一步帮助您,您应该多说明一点:关闭此窗口时会发生(或应该发生)什么?

什么控件类型应该引起关注?

10-06 15:59