WPF问题:全屏/最大化状态下无法缩小窗口宽度
问题解决:WPF最大化窗口无法修改宽度的处理方案
当窗口处于Maximized(最大化)状态时,直接设置Width属性不会生效——WPF会忽略该设置,因为最大化状态下窗口尺寸由系统接管,用户手动设置的尺寸参数不被处理。
要解决这个问题,需要先将窗口状态切换为Normal(正常状态),再修改宽度。修改后的按钮点击事件代码如下:
private void Button_Click(object sender, RoutedEventArgs e) { // 先恢复窗口为正常状态 if (this.WindowState == WindowState.Maximized) { this.WindowState = WindowState.Normal; } // 转换并设置宽度 this.Width = System.Convert.ToDouble(xwidth.Text); }
可选优化:添加输入验证
为避免TextBox中输入无效数值导致报错,建议使用double.TryParse做输入验证:
private void Button_Click(object sender, RoutedEventArgs e) { if (double.TryParse(xwidth.Text, out double newWidth)) { if (this.WindowState == WindowState.Maximized) { this.WindowState = WindowState.Normal; } this.Width = newWidth; } else { MessageBox.Show("请输入有效的宽度数值"); } }
内容的提问来源于stack exchange,提问作者Chaya
相关产品推荐
相关产品推荐

