我遇到了一个奇怪的错误,一直在尝试调试但没有成功。
我已经创建了子类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应用程序中,这个代码运行得很好,但是当我在主应用程序中使用它时,当关闭窗口(按下Escape键)并进行fs.close()
调用时,会出现以下错误:
'{DependencyProperty.UnsetValue}' 不是属性 'FocusVisualStyle' 的有效值。
奇怪的是,这种情况发生在窗口关闭后大约1500毫秒。我尝试将fs
的FocusVisualStyle设置为null,但似乎不起作用。我的直觉是,它正在尝试聚焦到我的应用程序中另一个没有此属性的元素,但实际上我不知道!
谢谢!
编辑。问题出在我全屏按钮自定义设置的FocusVisualStyle上。我将其设置为{x:Null},问题就解决了。
StaticResource
存在,但是被引用它的样式 没有找到 它。我刚刚添加了我的答案来说明这种情况。 - Muhammad Sulaiman