栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

wpf window最大化不匹配问题

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

wpf window最大化不匹配问题

1. 错误点

wpf window软件最大化时出现ActualWidth、ActualHeight不等于屏幕大小。出现原因不明。

xmal设置


    
        

cs使用

private void Btn_normal_Click(object sender, RoutedEventArgs e)
        {

            Console.WriteLine($"width:{this.ActualHeight}");
            Console.WriteLine($"height:{this.ActualWidth}");
            
            if (this.WindowState == WindowState.Normal)
            {

                this.WindowState = WindowState.Maximized;
            }
            else if (this.WindowState == WindowState.Maximized)
            {
                this.WindowState = WindowState.Normal;
            }
        }
2. 解决措施
  1. 删除 WindowStyle=“None”,AllowsTransparency=“True”
  2. 修改为
    xaml


    
        
    
    
        

cs

private void Btn_normal_Click(object sender, RoutedEventArgs e)
        {

            Console.WriteLine($"width:{this.ActualHeight}");
            Console.WriteLine($"height:{this.ActualWidth}");
            
            if (this.WindowState == WindowState.Normal)
            {
                gdMain.MaxWidth = SystemParameters.WorkArea.Width;
                gdMain.MaxHeight = SystemParameters.WorkArea.Height;
                this.WindowState = WindowState.Maximized;
            }
            else if (this.WindowState == WindowState.Maximized)
            {
                this.WindowState = WindowState.Normal;
            }
        }
3. standard window

以下内容参考自微软官方文档,进行了大概的翻译


标准窗口是由两个重叠的矩形组成。如上图

  1. 外部的矩形为 “non-client area”,表述为chrome,即我们上文修改的WindowChrome。它的绘制和托管是由system window manager。它的尺寸由标准操作系统设置决定。"non-client area"提供了标准的window功能和行为。比如包括了最大化、最小化、关闭等按钮,window边框,移动和修改行为、软件图标标题、系统目录。
  2. 内部的矩形为 “client area”,它仅仅包含你的软件本身,它的绘制和托管由你的程序自身。
3.1 windowstyle.none

可以使用 WindowStyle=“None” AllowsTransparency="True"去除外部矩形,然后在内部矩形内自定义标题栏等操作。
windowstyle有4中模式

  • None 仅在客户端区域可见-不显示标题栏和边框。
  • SingleBorderWindow 具有单个边框的窗口。 这是默认值。
  • ThreeDBorderWindow 一个带有窗口 三维 边框。
  • ToolWindow 固定的工具窗口
3.2 windowchrome

推荐使用windowchrome进行自定义标题栏,即修改外部矩形的设置,这样可以拥有外部矩形的功能

参考链接
  1. https://blog.csdn.net/WPwalter/article/details/81121829
  2. https://docs.microsoft.com/en-us/dotnet/api/system.windows.shell.windowchrome?view=windowsdesktop-6.0
    21829
  3. https://docs.microsoft.com/en-us/dotnet/api/system.windows.shell.windowchrome?view=windowsdesktop-6.0
  4. https://www.cnblogs.com/dino623/p/custom_window_style_using_WindowChrome.html
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/954620.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号