C# 窗口自适应窗口宽度和高度

其实winform并不适合做自适应这玩意的,虽然,能做是能做,
就像菜刀一样能切水果,但是,不是那么合适,毕竟有水果刀
wpf做自适应拉伸窗体,会更好一些。
代码:
#region 自适应
private Size m_szInit;//初始窗体大小
private Dictionary<Control, Rectangle> m_dicSize
= new Dictionary<Control, Rectangle>(); protected override void OnLoad(EventArgs e)
{
m_szInit = this.Size;//获取初始大小
this.GetInitSize(this);
base.OnLoad(e);
} private void GetInitSize(Control ctrl)
{
foreach (Control c in ctrl.Controls)
{
m_dicSize.Add(c, new Rectangle(c.locatio{过滤}n, c.Size));
this.GetInitSize(c);
}
} protected override void OnResize(EventArgs e)
{
//计算当前大小和初始大小的比例
float fx = (float)this.Width / m_szInit.Width;
float fy = (float)this.Height / m_szInit.Height;
foreach (var v in m_dicSize)
{
v.Key.Left = (int)(v.Value.Left * fx);
v.Key.Top = (int)(v.Value.Top * fy);
v.Key.Width = (int)(v.Value.Width * fx);
v.Key.Height = (int)(v.Value.Height * fy);
}
base.OnResize(e);
}
#endregion
C# 窗口自适应窗口宽度和高度的更多相关文章
- EasyUI设置Layout自适应浏览器宽度和高度
//设置自适应浏览器宽度和高度 function setLayoutHeight() { var height = $(window).height() - 20; $("#main_lay ...
- Js中获取显示器、浏览器以及窗口等的宽度与高度的方法
网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...
- JQuery获取浏览器窗口的可视区域高度和宽度,滚动条高度
alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 alert($(docum ...
- js各种获取当前窗口页面宽度、高度的方法
alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 alert($(docum ...
- DIV+CSS自适应窗口高度
<html> <head> <title>DIV+CSS自适应窗口高度</title> <style type="text/css&qu ...
- Kubernetes WebSSH终端窗口自适应Resize
追求完美不服输的我,一直在与各种问题斗争的路上痛并快乐着 上一篇文章Django实现WebSSH操作Kubernetes Pod最后留了个问题没有解决,那就是terminal内容窗口的大小没有办法调整 ...
- Python Django撸个WebSSH操作Kubernetes Pod(下)- 终端窗口自适应Resize
追求完美不服输的我,一直在与各种问题斗争的路上痛并快乐着 上一篇文章Django实现WebSSH操作Kubernetes Pod最后留了个问题没有解决,那就是terminal内容窗口的大小没有办法调整 ...
- WPF 窗口自适应
窗口自适应就是说,当主窗口缩放的时候,内部的控件位置自动的调整,而不是隐藏掉.这主要依赖于Grid布局. 1.比如这个groupbox 本身是在一个Grid的Row中的.缩放之后,左边的button不 ...
- css和css3弹性盒模型实现元素宽度(高度)自适应
一.css实现左侧宽度固定右侧宽度自适应 1.定位 <!DOCTYPE html> <html lang="en"> <head> <me ...
随机推荐
- Android库分析工具(崩溃反编译)
[时间:2016-07] [状态:Open] [关键词:android, 动态库,静态库, 编译,crash,addr2line] 本文主要整理Android编译系统中可用的库分析工作,可作为后续代码 ...
- python解析XML笔记(etree)
近期梳理Weblogic数据源,数据源较多,但是每一个数据源在weblogic中是xml方式存在,所以想到批量解析xml,把数据放到数据库后来解决. 需要的数据源信息: WEBLOGIC_HOSTJD ...
- hdu3938(最小生成树,推荐)
题意描述:简单的讲就是,给你一张无向图,求有多少条路径使得路径上的花费小于L,这里路径上的花费是这样规定的,a.b两点之间的多条路径中的最长的边最小值! 思路:这题目有多个询问,肯定要用离线输出.思路 ...
- C语言 · 分苹果
算法提高 分苹果 时间限制:1.0s 内存限制:256.0MB 问题描述 小朋友排成一排,老师给他们分苹果. 小朋友从左到右标号1..N.有M个老师,每次第i个老师会给第Li个到第R ...
- C语言 · 十进制数转八进制数
算法训练 十进制数转八进制数 时间限制:1.0s 内存限制:512.0MB 编写函数把一个十进制数输出其对应的八进制数. 样例输入 9274 样例输出 22072 #includ ...
- [zigbee]zigbee的一些基础
--------------------------下面转自知乎 首先要区分协议跟协议栈.◇协议是一种规定.是一系列的通信标准,通信双方按照这一标准进行数据收发.◇协议栈是一系列代码,是协议的具体实现 ...
- C/C++中的static关键字详解
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用.一.面向过程设计中的sta ...
- sql 拼接同列的值
sql中有时需要将列的值转成行的形式,比如下面的数据,具有相同Path的ZumenID有哪一些,该怎么做呢? 常见的做法可以参见这篇文章http://www.cnblogs.com/xiashengw ...
- linux下查看cpu物理个数和逻辑个数
hadoop@chw-desktop3:~$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 ...
- Ext.ux.grid.feature.Searching 解析查询参数,动态产生linq lambda表达式
上篇文章中http://www.cnblogs.com/qidian10/p/3209439.html我们介绍了如何使用Grid的查询组建,而且将查询的参数传递到了后台. 那么我们后台如何介绍参数,并 ...