C#WPF:如何在窗口拖动到屏幕顶部时最大化窗口

时间:2014-11-28 17:02:19

标签: c# wpf window drag windowstate

所以我有一个WPF应用程序,当窗口被拖到屏幕顶部时会最大化窗口。

但是,我想改变一个属性,因此我觉得最好如果我创建自己的拖动最大化属性。

最简单的方法是什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以检查窗口的WindowState是否设置为“Maximized”。如果它已最大化,您可以相应地更改文本。

为此,您需要订阅窗口的SizeChanged事件,并在事件处理程序中检查WindowState是否设置为Maximized / Normal。如果是这样,您可以相应地更改文本。

我假设您正在使用自定义窗口尝试使用带有字体“Wingdings”的按钮来表示最小化,恢复和关闭按钮,或者某些此类字体具有字形以表示最小化,恢复的图标/最大化,并关闭。

无论如何,即使我的假设是错误的,您也可以根据自己的情况调整下面的代码。

    public CustomWindow()
    {
        SizeChanged += CustomWindow_SizeChanged;
    }

    void CustomWindow_SizeChanged(object sender, SizeChangedEventArgs e)
    {
         CheckRestoreButtonIcon();
    }

    protected void CheckRestoreButtonIcon()
    {          
        //i'm assuming that the button is named as restoreButton.
        //in wingdings, 1 is for maximized glyph, 2 is for restore glyph
        // you can always set content to whatever you want!

        if (restoreButton == null)
            return;

        if (WindowState == WindowState.Maximized)
            restoreButton.Content = "1"; //maximizee glyph
        else
            restoreButton.Content = "2";//restore glyph
    }