C# system.WorkArea属性给出了错误的值
我目前正在用c#wpf编写一个带有自定义窗口的程序。因此,因为必须有一个自定义的最大化状态,所以我希望在没有任务栏的情况下获得屏幕的高度和宽度。SystemParameters.workarea属性似乎是一个不错的选择,但是它给我的值是错误的。此外,将其设置为新的Maxheight和Maxwidth会设置某种边距,这样即使我明确声明this.left=0和this.left=0,我的应用程序的右侧和底部也会有一个小间隙 有人有这方面的经验吗 更新:请求的代码(当用户单击“最大化”按钮(本质上是最大化和正常之间的切换)时运行),并且在我的设计器窗口中没有边距或最大高度/宽度,所有内容都设置为“自动”C# system.WorkArea属性给出了错误的值,c#,wpf,C#,Wpf,我目前正在用c#wpf编写一个带有自定义窗口的程序。因此,因为必须有一个自定义的最大化状态,所以我希望在没有任务栏的情况下获得屏幕的高度和宽度。SystemParameters.workarea属性似乎是一个不错的选择,但是它给我的值是错误的。此外,将其设置为新的Maxheight和Maxwidth会设置某种边距,这样即使我明确声明this.left=0和this.left=0,我的应用程序的右侧和底部也会有一个小间隙 有人有这方面的经验吗 更新:请求的代码(当用户单击“最大化”按钮(本质上是最
private void MaxThis(object sender, System.Windows.RoutedEventArgs e)
{ if (WindowState == WindowState.Maximized){
WindowState = WindowState.Normal;
}
else {
this.MaxWidth = SystemParameters.WorkArea.Width;
this.MaxHeight = SystemParameters.WorkArea.Height;
this.WindowState = WindowState.Maximized;
this.Top = 0;
this.Left = 0;
}
}
更新:我在Blend中创建了一个新的空白WPF应用程序,添加了一个按钮并将此代码链接到它。右侧和底部的边距相同…您看到的额外边框和间距是调整大小的框架。摆脱它最简单的方法是设置
ResizeMode = ResizeMode.NoResize;
复制问题的邮政编码。谢谢!那么,我是否应该想要一个调整大小的夹点?我会定制一个?是的,这会让你对大小和位置有更多的控制。如果要允许从最大化状态调整大小,可以更改窗口本身的ControlTemplate,以添加自己的夹点,而不需要额外的间距。