Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# system.WorkArea属性给出了错误的值_C#_Wpf - Fatal编程技术网

C# system.WorkArea属性给出了错误的值

C# system.WorkArea属性给出了错误的值,c#,wpf,C#,Wpf,我目前正在用c#wpf编写一个带有自定义窗口的程序。因此,因为必须有一个自定义的最大化状态,所以我希望在没有任务栏的情况下获得屏幕的高度和宽度。SystemParameters.workarea属性似乎是一个不错的选择,但是它给我的值是错误的。此外,将其设置为新的Maxheight和Maxwidth会设置某种边距,这样即使我明确声明this.left=0和this.left=0,我的应用程序的右侧和底部也会有一个小间隙 有人有这方面的经验吗 更新:请求的代码(当用户单击“最大化”按钮(本质上是最

我目前正在用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,以添加自己的夹点,而不需要额外的间距。