我有一个奇怪的错误,我试图调试但没有运气。
我有子类 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'.
奇怪的是它发生在窗口关闭后大约 1500 毫秒。我尝试将 FocusVisualStyle 设置fs
为 null,但它看起来像别的东西。直觉是它试图在我的应用程序中关注另一个没有此属性的元素,但我真的不知道!
谢谢!
编辑。问题是我的全屏按钮上 FocusVisualStyle 的自定义设置。我设置为 {x:Null} 并且问题消失了。