我有一个奇怪的错误,我试图调试没有运气。'{DependencyProperty.UnsetValue}'对于'FocusVisualStyle'属性不是有效的值
我有子类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应用程序,但是当我在我的主要的应用程序使用此代码
'{DependencyProperty.UnsetValue}' is not a valid value for property 'FocusVisualStyle'.
奇怪的是它发生约1500毫秒之后的窗口关闭:关闭窗口时(Escape键)和fs.close()
呼叫我得到这个错误。我试着将fs
上的FocusVisualStyle设置为null,但它看起来像别的东西。直觉是它试图将另一个元素集中在我的应用程序中,但没有这个属性,但是我真的不知道!
谢谢!
编辑。问题是FocusVisualStyle在我的全屏按钮上的自定义设置。我设置为{x:Null},问题就消失了。
一个切换按钮启动全屏命令,所以我想这会得到回报的焦点。然而,稍后键盘命令(例如F12)可能会启动它,因此它可能是任何具有当前焦点的元素。该togglebutton具有自定义样式,我试着将该样式的FocusVisualStyle设置为{x:Null},但没有运气。 – DaveO 2011-02-23 18:57:45
我说谎,它被设置在两个地方,取消第二个解决问题thx! – DaveO 2011-02-23 19:02:46
没问题,乐意帮忙! – David 2011-02-23 19:56:05