0

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

我添加了 3 个按钮:

  1. 最大/最小
  2. 隐藏

我要做的是当用户单击第二个按钮时,如果表单处于正常状态,则将表单最大化为屏幕大小,否则如果表单处于最大化状态,则将表单设置为初始状态尺寸..

这是我尝试过的,但是当我第一次单击第二个按钮时没有任何反应

  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 或类似的东西吗?

4

1 回答 1

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.PrimaryScreenWidthtoSystemParameters.WorkArea.WidthHeightso 以这种方式表单不会超过任务栏

于 2013-04-20T19:14:27.237 回答