情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

WPFで全画面表示

WPFで全画面表示にする方法(と元に戻す方法)です。

somethingは全画面表示Windowに表示するコンテンツです。

空のcatch文は気持ち悪い人がいるかもしれません。

//全画面表示用のウィンドウ
private Window window = null;
//全画面表示か
private bool isMaximized = false;

//全画面表示にする
public void Maximize()
{
    if (window != null)
        return;

    isMaximized = true;

    dockPanelControl1.Children.Remove(something);

    window = new Window();
    window.ShowActivated = true;
    window.Topmost = true;
    window.ShowInTaskbar = false;
    window.WindowStyle = WindowStyle.None;
    window.Cursor = Cursors.None;
    window.WindowState = WindowState.Maximized;
    window.PreviewKeyDown += (sender, e) =>
    {
        //Escキーが押された時、全画面表示を終了(通常表示に戻す)
        if (e.Key == Key.Escape)
            Restore();
        else
            return;

        //処理済み
        e.Handled = true;
    };
    window.Deactivated += (sender, e) =>
    {
        if (isMaximized)
            Restore();
    };
    window.Content = bMedia;
    window.Show();
}

//通常表示にする
public void Restore()
{
    if (window == null)
        return;

    isMaximized = false;

    try
    {
        window.Close();
    }
    catch
    {
    }
    window.Content = null;
    window = null;

    dockPanelControl1.Children.Add(something);
}
pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-C#, wpf