日期:2014-05-17  浏览次数:21179 次

WPF,自定义窗口最大化为什么出现空隙?
自定义了一个窗体,并处理了窗体最大化时覆盖任务栏的问题,如下:

private void MaxWindow(object sender, RoutedEventArgs e)
{
    if (WindowState == WindowState.Normal)
    {
        this.MaxWidth = SystemParameters.WorkArea.Width;
        this.MaxHeight = SystemParameters.WorkArea.Height;
        WindowState = WindowState.Maximized;
    }
    else
    {
        WindowState = WindowState.Normal;
    }
}

但最后的效果不理想,窗体有右边、下面有很宽的空隙。如下图:


请问,这是什么原因造成的呢?

------解决方案--------------------
我的win7 64bit, 单显示器。
没有出现你说的情况。隐藏任务栏后,下面有那么一点点,没有你截图上那么夸张。
------解决方案--------------------
你的标题栏窄的不正常。
------解决方案--------------------
针对这种情况,可将最大高度适当增加一些。
------解决方案--------------------
你为什么不让系统自动管理最大化的大小,非要手动设置宽高?
  WindowState = WindowState.Maximized;系统自然会把窗体最大化。
------解决方案--------------------
            Double screenHeight = SystemParameters.FullPrimaryScreenHeight;/*-----获取主监视器屏幕的高度--------------------------------------*/
            Double screenWidth = SystemParameters.FullPrimaryScreenWidth;/*-------获取主监视器屏幕的宽度--------------------------------------*/
            //Double _screenHeight = SystemParameters.WorkArea.Height;/*-----获取主监视器工作区域屏幕的高度--------------------------------------*/
            //Double _screenWidth = SystemParameters.WorkArea.Width;/*-------获取主监视器工作区域屏幕的宽度--------------------------------------*/