WPFの获取屏幕分辨率并自适应
double x = SystemParameters.WorkArea.Width;//得到屏幕工作区域宽度
double y = SystemParameters.WorkArea.Height;//得到屏幕工作区域高度
double x1= SystemParameters.PrimaryScreenWidth;//得到屏幕整体宽度
double y1 = SystemParameters.PrimaryScreenHeight;//得到屏幕整体高度
this.Width = x1;//设置窗体宽度 this.Height = y1;//设置窗体高度
或者:(获取整体)
int SW = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
int SH = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
C# 根据不同屏幕分辨率自动适应屏幕 C# 根据不同屏幕分辨率自动适应屏幕
------解决方案-------------------------------------------------------- 使用 TableLayoutPanel 布局 + 设置 Dock Anchor 属性。 ------解决方案-------------------------------------------------------- 如果只是组件位置的话,可以设置dock和anchor等 如果是还有其他特殊要求,就要自己根据实际分辨率来计算一些属性了 ------解决方案-------------------------------------------------------- 窗体的windowstate设置为maximized,载入的时候自动铺满屏幕。 如果想做其他操作的话Rectangle rect = System.Windows.Forms.SystemInformation.VirtualScreen; 屏幕宽度=rect.width,高度=rect.height
wpf窗体定位
据WPF外包小编了解,通常,不需要在屏幕上明确定位窗口。而是简单地将WindowState属性设置为Normal,并忽略其他所有细节。另一方面,很少会将WindowStartupLocation属性设置为Manual,并使用Left属性和Right属性明确设置窗口的位置。
有时需要更加关注为窗口选择位置和尺寸。例如,如果创建的窗口太大而不能使用低分辨率显示器就会遇到麻烦。如果使用一个单窗口应用程序,最好的解决方法是创建可以改变尺寸的窗口。如果使用具有几个浮动窗口的应用程序,问题就没有这么简单了。
据WPF外包公司小编了解,可以限制窗口的尺寸使其支持最小的显示器,但是这会让高端用户感到沮丧(它们为了在屏幕上一次显示更多的信息,专门购买更好的显示器)。对于这种情况,通常希望在运行时决定窗口的最佳位置。为此,需要使用System.Windows.SystemParameters类来检索有关屏幕真实状态的基本信息。
SystemParameters类包含一些静态属性,从中可以得到各种有关系统设置的信息。例如,可以使用SystemParameters类来决定用户是否启用了热跟踪(hot tracking)、拖动时显示窗口内容选项,以及其他选项。对于窗口,SystemParameters类特别有用,因为它提供的两个属性可以给出当前屏幕的分辨率:
FullPrimaryScreenHeight属性和FullPrimaryScreenWidth属性。这两个属性都非常简单,下面是一些(在运行时将窗口定位在屏幕中央的)演示代码:
double screeHeight = SystemParameters.FullPrimaryScreenHeight;
double screeWidth = SystemParameters.FullPrimaryScreenWidth;
this.Top = (screenHeight - this.Height) / 2;
this.Left = (screenWidth - this.Width) / 2;
尽管使用这些代码和将窗口的WindowState属性设置为CenterScreen效果是相同的,但是使用代码具有实现不同定位逻辑的灵活性,并且可以在合适的时间执行这些定位逻辑。
更好的选择是使用SystemParameters.WorkArea矩形,使窗口位于可用屏幕区域的中央。工作区域不包括停靠任务栏(以及其他停靠到桌面的工具条)的区域。
double workHeight = SystemParameters.WorkArea.Height;
double workWidth = SystemParameters.WorkArea.Width;
this.Top = (workHeight - this.Height) / 2;
this.Left = (workWidth - this.Width) / 2;
注意:
这两个示例代码都存在一个小缺点。当为窗口设置Top属性时,窗口已经是可见的了,并且窗口会被立即移动和刷新。当使用后面一行代码设置Left属性时会发生同样的过程。因此,视觉敏锐的用户会看到两次窗口移动。遗憾的是,Window类没有提供一个方法同时设置这两个位置属性。唯一的解决方法是在窗口创建之后还未通过调用Show( )方法或ShowDialog( )方法显示之前定位窗口。
WPFの获取屏幕分辨率并自适应的更多相关文章
- WPF 获取屏幕分辨率(获取最大宽高)等
double x = SystemParameters.WorkArea.Width;//得到屏幕工作区域宽度 double y = SystemParameters.WorkArea.Height; ...
- Qt获取屏幕分辨率
http://my.oschina.net/u/1255773/blog/159557 原 Qt获取屏幕分辨率 发表于1年前(2013-09-06 11:00) 阅读(546) | 评论(0) 3 ...
- 获取屏幕分辨率(C/C++)
C/C++获取屏幕分辨率的方法 int main(int argc, char* argv[]) { // 需要添加头文件: // #include <Windows.h> system( ...
- 获取屏幕分辨率(C#)
C#获取屏幕分辨率的方法 static void Main(string[] args) { // 控制台程序,需要添加程序集: // using System.Drawing; // using S ...
- Android 获取屏幕分辨率
原文:Android 获取屏幕分辨率 得到一个屏幕尺寸的三种方法如下: // 通过WindowManager获取 DisplayMetrics dm = new Displ ...
- C#获取屏幕分辨率率
C#获取屏幕的分辨率 在C#中获取当前屏幕的分辨率的方法 1:rectangle类. 命名空间为:system.Drawing. system.Drawing.Rectangle rec=Scre ...
- VC获取屏幕分辨率及大小相关(转)
vc得到屏幕的当前分辨率方法: 1.Windows API调用 int width = GetSystemMetrics ( SM_CXSCREEN ); int height= GetSystem ...
- android DisplayMetrics 获取屏幕分辨率
Android 提供DisplayMetircs 类可以很方便的获取分辨率.下面介绍 DisplayMetics 类: Andorid.util 包下的DisplayMetrics 类提供了一种关于显 ...
- Android获取屏幕分辨率及DisplayMetrics简介
Android 可设置为随着窗口大小调整缩放比例,但即便如此,手机程序设计人员还是必须知道手机屏幕的边界,以避免缩放造成的布局变形问题. 手机的分辨率信息是手机的一项重要信息,很好的是,Android ...
随机推荐
- 一句命令修复Xcode6.2插件失效的问题
Xcode升级到6.2之后XVim无法使用了. 打开终端输入: find ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins - ...
- 【JAVA WEB教程】jsp环境搭建(eclipse)【详细+图文】
下载JDK(如果你的系统是64位的,那么就下载64位版本的) 然后安装,点击下一步 再点击下一步 安装成功 下载针对JAVA EE的Eclipse(如果你的系统是64位的,那么就下载6 ...
- CentOS 7 开启 SNMP 实现服务器性能监控
1.检测是否有 SNMP 服务 service snmpd status 2.若没有则安装 yum install -y net-snmp 3.编辑 SNMP 的配置文件,设置安全的验证方式 vi / ...
- mybatis教程5(延迟加载和缓存)
关联关系 在关系型数据库中,表与表之间很少是独立与其他表没关系的.所以在实际开发过程中我们会碰到很多复杂的关联关系.在此我们来分析下载mybatis中怎么处理这些关系 1对1关系 我们有一张员工表(T ...
- [AHOI2008] 紧急集合
Description 欢乐岛上有个非常好玩的游戏,叫做"紧急集合".在岛上分散有N个等待点,有N-1条道路连接着它们,每一条道路都连接某两个等待点,且通过这些道路可以走遍所有的等 ...
- python字典操作和内置方法
一 字典基本介绍 python中只有字典是映射结构,通过key取值,并且key是不可变数据类型,而value可以是任意数据类型. 字典通过一个花括号,里面存放key:value的数据结构来定义.理论上 ...
- Java中的集合迭代器
集合的迭代器 任何集合都有迭代器. 任何集合类,都必须能以某种方式存取元素,否则这个集合容器就没有任何意义. 迭代器,也是一种模式(也叫迭代器模式).在java中它是一个对象,其目的是遍历并选中其中的 ...
- Java集合之Vector源码分析
概述 Vector与ArrayLIst类似, 内部同样维护一个数组, Vector是线程安全的. 方法与ArrayList大体一致, 只是加上 synchronized 关键字, 保证线程安全, 下面 ...
- SQL Server 中的一些概念
学习SQL Server 2012编程入门经典(第4版)的笔记 1.事务日志 任意数据库的更改起初不进入数据库本身,而是不断地被写入到事务日志. 日志是数据进入磁盘上的最先位置. 2.表 数据库中实际 ...
- js发送请求
1.Chrome控制台中 net::ERR_CONNECTION_REFUSED js频繁发送请求,有可能连接被拒绝,可用setTimeout,过几秒发送,给个缓冲时间 var overlayAnal ...