zoukankan      html  css  js  c++  java
  • WPF 分辨率自适应,获取当前系统分辨率+窗口当前坐标

    前面来自:http://www.cnblogs.com/xuxiaona/archive/2013/03/28/2987193.html

    使用WPF创建一个窗体(Window)时,如果设置了固定的高度(Height)和宽度(Width),一旦用户的电脑分辨率过低,就会使得窗体及其中的内容无法完整地显示出来。要解决这个这个问题,有以下几个方法可供参考:
    
    1、无论将窗体做成全屏的(WindowState="Maximized"),还是设置了固定的窗体大小,都可以利用DockPanel控件来进行布局。DockPanel控件有一个特殊的属性:LastChildFill="True",可以使该控件中的最后一个元素自动填充满剩下的位置。
    
        如,某页面,最上方是一个下拉框,最下方是一个按钮,中间是一个列表。可以按如下写法进行布局:
    
        <DockPanel LastChildFill="True">
    
        <ComboBox Height = "20" DockPanel.Dock="Top"/>
    
        <Button Height = "20" DockPanel.Dock="Bottom"/>
    
        <ListView DockPanel.Dock="Top">......</ListView>
    
        </DockPanel>
    
         这样即使列表控件ListView看上去是放在DockPanel的最后的位置,但其实是填充在了下拉框ComboBox和按钮Button之间的位置。由于下拉框和按钮都指定了具体的高度,因此该页面中间的大片空白就被ListView全部填满,不需要为ListView指定一个具体的高度或宽度。
    
         无论分辨率如何变化,只要窗体是能够完整显示出来的,窗体中的元素都能够正常显示。
    
     
    
    2、如果窗体不是全屏的,设置了具体的高度或宽度,在有些分辨率下连窗体都无法显示完全,那么上述方法也无法解决问题。只能使用ViewBox控件,该控件可拉伸和缩放单个子元素以填满可用空间。
    
         一个 Viewbox 只能具有一个Child,需要将ViewBox作为窗体中的最外层元素,将所有控件都包括在其中,如:
    
        <Window>
    
        <View>
    
          <DockPanel>
    
            ......
    
          </DockPanel>
    
        </View>
    
        <Window>
    
        再将所有控件放到DockPanel中进行布局。经过ViewBox处理过的窗体,在分辨率不足以显示原定大小的情况下,会根据分辨率将窗体、窗体中的所有控件,包括字体大小,都按比例自动进行缩放。
    c# 显示桌面分辨率、窗口宽高、窗口初始位置、窗口当前位置、窗口当前坐标

    System.Windows.Forms.SystemInformation.WorkingArea.Width 屏幕宽度System.Windows.Forms.SystemInformation.WorkingArea.Height屏幕高度(不包括系统任务栏)
    this.Size.Width自己窗体的宽度,this.Size.Width自己窗体的高度
    this.ClientRectangle.Width 工作区域宽度

    this.ClientRectangle.Height工作区域高度

    设置窗口初始位置

    this.StartPosition = FormStartPosition.Manual; //窗体的位置由Location属性决定
    this.StartPosition = FormStartPosition.CenterParent; //窗体在其父窗体中居中
    this.StartPosition = FormStartPosition.CenterScreen; //窗体在当前显示窗口中居中,尺寸在窗体大小中指定
    this.StartPosition = FormStartPosition.WindowsDefaultBounds; //窗体定位在windows默认位置,边界也由windows默认决定
    this.StartPosition = FormStartPosition.WindowsDefaultLocation; //窗体定位在windows默认位置,尺寸在窗体大小中指定

    例:

                this.StartPosition = FormStartPosition.Manual; //窗体的位置由Location属性决定
                this.Location = (Point)new Size(0, 0);         //窗口的起始位置为0,0

    创建窗体时设置宽度和高度

    this.ClientSize = new System.Drawing.Size(x1,y1); //X1 为宽度,Y1为高度

    获取窗体的当前坐标/位置

    int locationX= this.Location.X;

    int locaiontY=this.Location.Y;

  • 相关阅读:
    你没听过的乔布斯语录:苹果如果没这么独,可能更成功
    关于Apache mod_rewrite的中文配置、使用和语法介绍(实现URL重写和防盗链功能)
    与调试器共舞
    libxml2.dylb 导致<libxml/tree.h> 老是找不到头文件
    国家气象局提供的天气预报接口(完整Json接口)
    dSYM 文件分析工具
    总结
    1-22
    【图论】
    好像要开始图论了....但搜索还剩了点....
  • 原文地址:https://www.cnblogs.com/bkycjj/p/3370660.html
Copyright © 2011-2022 走看看