WPF 基础
- 关于布局的规则
- 控件的布局应该由容器来决定,而不是通过自身使用margin之类的东西来控制位置
- 避免为控件定义明确的尺寸,但应该限定一个可接受的最大及最小尺寸
- 不要将界面元素设置成与屏幕坐标相关
- 容器应将有效控件共享给其子控件
- WPF不使用物理像素设置尺寸,而使用设备无关单位,该设备无关单位被定义为1/96英寸,即一英寸96个像素,1英寸=2.54cm,对于96DPI的显示设备,长度单位是1格像素,对于120DPI,单位长度是1.25像素,但长度不变都是1/(96*2.54) cm,常说的分辨率是逻辑像素密度,如1024像素*768像素,分辨率最大为物理分辨率,即物理像素密度
- WPF窗口只能包含一个控件,原因是由于Window类继承自ContentControl类,WPF中布局由所用容器决定,WPF窗口应该遵循的原则:
- 不应显示设定控件的尺寸,而应该使控件尺寸适应内容,可以设置最大最小尺寸来限制可接受的尺寸范围
- 不应使用屏幕坐标指定控件位置,应当由容器决定
- 布局容器与它的子控件共享可以使用的空间
- 可以嵌套布局容
- 所有WPF布局控件都继承自System.Windows.Controls.Panel,
- StackPanel:可以把内部的元素在纵向或者横向上紧密排列,形成栈式布局。
- WrapPanel:可以根据布局的大小(窗口大小)自动调整控件的位置
- DockPanel沿一条边缘线来拉伸所包含的控件,这个控件有个最后一个内容控件实现填充所有剩余部分的功能,使用LastChildFill=True属性
- 如果有一颗稠密的嵌套元素树,可以通过View|Other Windows|Document Outlline菜单项显示该窗口
- Grid面板在预定义的行和列中放置元素,而WrapPanel和StackPanel面板放置元素时会隐式的创建行和列,Grid面板支持三种设置尺寸的方式:
- 绝对设置尺寸方式,使用设备无关单位设置确切的尺寸,这是最无用的策略
- Auto,自动设置尺寸方式,最常用,<ColumnDefinition width="Auto">表示匹配列中最宽元素的长度
- *号,按比例设置尺寸方式,单元格会按比例增加
- XAML中Grid.ColumnSpan 与Grid.RowSpan: 设置Grid中的控件占用的行数或者列数,用代码Grid.SetColumnSpan和Grid.SetRowSpan可以实现相同功能
- 共享尺寸组:使一行或一列 与其他行或列的尺寸相匹配,使用SharedSizeGroup创建共享组
- WPF 编程中最常用的标记扩展是支持资源引用的标记扩展(StaticResource 和 DynamicResource)以及支持数据绑定的标记扩展 (Binding)。
StaticResource 通过替换已定义资源的值来为属性提供值,key是xaml中定义的资源的key
<object property="{StaticResource key}" .../>
- DynamicResource 通过将值推迟为对资源的运行时引用来为属性提供值
WPF 基础的更多相关文章
- WPF基础到企业应用系列6——布局全接触
本文转自:http://knightswarrior.blog.51cto.com/1792698/365351 一. 摘要 首先很高兴这个系列能得到大家的关注和支持,这段时间一直在研究Windows ...
- WPF 基础到企业应用系列索引
转自:http://www.cnblogs.com/zenghongliang/archive/2010/07/09/1774141.html WPF 基础到企业应用系列索引 WPF 基础到企业应用系 ...
- WPF笔记(1.1 WPF基础)——Hello,WPF!
原文:WPF笔记(1.1 WPF基础)--Hello,WPF! Example 1-1. Minimal C# WPF application// MyApp.csusing System;using ...
- C# WPF基础巩固
时间如流水,只能流去不流回. 学历代表你的过去,能力代表你的现在,学习能力代表你的将来. 学无止境,精益求精. 一.写作目的 做C# WPF开发,无论是工作中即将使用,还是只应付跳槽面试,开发基础是非 ...
- WPF基础知识、界面布局及控件Binding(转)
WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...
- WPF基础知识、界面布局及控件Binding
WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...
- WPF 基础面试题及答案(一)
一 · WPF由哪两部分组成? wpf 由两个主要部分 组成:引擎和编程框架. 1 引擎.wpf引擎是基于窗体的应用程序 图形 视频 音频和文档提供了一个单一的运行时库.重要的是WPF基于矢量的呈现引 ...
- WPF基础到企业应用系列7——深入剖析依赖属性(WPF/Silverlight核心)
一. 摘要 首先圣殿骑士非常高兴这个系列能得到大家的关注和支持.这个系列从七月份開始到如今才第七篇,上一篇公布是在8月2日,掐指一算有二十多天没有继续更新了,最主要原因一来是想把它写好,二来是由于近期 ...
- WPF基础学习笔记整理 (九) 资源
基础知识: WPF的资源是一种保管一系列有用对象的简单方法,方便于重用. WPF UI元素的Resources属性,都是继承自FrameworkElement列,且其类型为ResourceDictio ...
- WPF基础学习笔记整理 (八) 命令
基础知识: 命令是应用程序的任务,并跟踪任务是否能够被执行. 命令不包含执行应用程序任务的代码. 命令是比事件更高级的元素.默认的命令目标是当前获得焦点的元素. 良好的Win应用程序,应用程序逻辑不应 ...
随机推荐
- 调试相关blogs收集
Debug Diag官方blog https://blogs.msdn.microsoft.com/debugdiag/ Tess https://blogs.msdn.microsoft.com ...
- Centos7 minimal 系列之NAT联网(一)
一.安装 参考:http://m.blog.csdn.net/qq_24879495/article/details/77838512 二.解决不能联网问题 打开网络共享中心,设置虚拟网卡 编辑虚拟机 ...
- SpringBoot(八) Spring和消息队列RabbitMQ
概述 1.大多数应用中,可以通过消息服务中间件来提升系统异步能力和拓展解耦能力. 2.消息服务中的两个重要概念:消息代理(Message broker)和目的地(destination) 当消息发送者 ...
- JS应用实例1:表格各行换色
效果如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- null和undifned的区别
null和undifned的区别 1 从类型方面:null的类型是对象,undified的类型是undified. 2 从定义方面:null是一个表示"无"的对象,转为数值时为0: ...
- 【原创】spring中的事务传播特性
关于spring的传播特性,我对其进行了详细的叙述了下: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择. 比如方法A调用方法B,如果方法 ...
- Paper阅读总结Day1
Paper阅读总结Day1 1.Convolutional Neural Networks For Facial Expression Recognition 文章思想 简单的一篇关于表情识别的文章, ...
- 查看网站域名IP地址
运行:CMD 输入: Nslookup 网站地址 示例: Nslookup httpwww.baidu.com 我们是筑梦团队,我们的座右铭是:当提起逐梦的脚步,也请举起筑梦的双手
- 2015 Objective-C 新特性
Overview 自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时,也有很多像我一样工作上依然 ...
- jquery获取自定义属性的值
//获取属性值 1 <div id="text" value="黑哒哒的盟友"><div> jQuery取值: $("#tex ...