最大化自定义WPF表单作为屏幕大小

时间:2013-04-20 19:06:15

标签: c# .net wpf

我正在尝试在WPF中创建自定义表单。我将 windowStyle 设置为

我添加了3个按钮:

  1. 关闭
  2. 最大值/最小值
  3. 隐藏
  4. 我要做的是当用户点击第二个按钮时, 如果表单处于正常状态,则将表单最大化为屏幕大小,否则如果 表单处于最大化状态,将表单设置为初始大小..

    这是我尝试过的,但是当我第一次点击第二个按钮

    时没有任何反应
      private bool maximized = false;
      private void button2_Click(object sender, RoutedEventArgs e)
        {
            if (!maximized)
            {
                this.MaxHeight = SystemParameters.PrimaryScreenHeight;
                this.MaxWidth = SystemParameters.PrimaryScreenWidth;
                this.WindowState = System.Windows.WindowState.Maximized;
                maximized = true;
            }
            else
            {
                this.WindowState = System.Windows.WindowState.Normal;
                maximized = false;
            }
        }
    

    我需要添加Invalidate或类似内容吗?

1 个答案:

答案 0 :(得分:1)

好的,我解决了.. 当我创建xaml文件时..我添加了一个矩形,因此表单主体将是矩形.. 我需要改变矩形的宽度和高度。

  private void button2_Click(object sender, RoutedEventArgs e)
    {
        if (!maximized)
        {

            this.FormBody.Width = SystemParameters.WorkArea.Width; //rectangle's width
            this.FormBody.Height = SystemParameters.WorkArea.Height;// rectangle's height
            this.WindowState = System.Windows.WindowState.Maximized;
            maximized = true;
        }
        else
        {
            this.WindowState = System.Windows.WindowState.Normal;
            maximized = false;
        }
    }

我还将SystemParameters.PrimaryScreenWidth更改为SystemParameters.WorkArea.Width 以及Height,所以这样形式不会超过任务栏