運が悪いのでデバッグしようとしている奇妙なエラーがあります。
一部のコンテンツを表示する 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 後に発生します。FocusVisualStylefs
を null に設定しようとしましたが、別のように見えます。直観的には、このプロパティを持たないアプリ内の別の要素に焦点を合わせようとしているのですが、実際にはわかりません!
ありがとう!
編集。問題は、フルスクリーン ボタンの FocusVisualStyle のカスタム設定でした。{x:Null} に設定すると、問題はなくなりました。