Wpf学习20180605
Windows Presentation Foundation 窗口展示框架 WPF。
与winform界面程序比较,我认为最大的区别是‘与分辨率无关’这个特性。
传统winform程序在低分辨率的电脑上开发,在高分辨率的显示器(显示器的尺寸不变)中显示,会发现原有的程序尺寸缩小了。
就好比100米物理距离,有50个等距点,每个点是一个像素点,winform设定50个像素点描绘了100米物理距离。
当100米变为100个等距点后,winform依然按设定的50个像素点描绘100米,在高DPI(单位长度下的像素点,数字越高,单位面积支持的分片率越高)下实际只显示50米。
wpf不是使用像素点的多少来描绘长度,而是根据DPI的值计算需要的像素点进行描绘。
windows系统标准DPI为96,wpf会与程序运行DPI计算,获得描绘大小;当开发在DPI96运行在windowsDPI为120的环境,描绘值(像素点个数)=程序设定值*120/96,这样描绘的实际大小几乎没有差别。
----------------------------------------------------------------------------------------
wpf ,窗口展示框架
对界面使用XAML语言编程,对控件的高度自定义。
-------------------------------------------------------------------------------------------
XAML
声明式编程语言。
xmal元素和特性,对应.net的对象和属性。
-----------------------------------------------------
XAML命名空间
在许多 XAML 文件的根标记中的命名空间声明内,通常可看到两个 XML 命名空间声明。 第一个声明默认映射整个 WPF 客户端/框架 XAML 命名空间:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
第二个声明映射单独的 XAML 命名空间,(通常)将其映射到 x: 前缀。
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
这些声明之间的关系是 x: 前缀映射支持 XAML 语言定义中的内部函数,并且 WPF 是将 XAML 用作语言并为 XAML 定义对象词汇的一种实现。 因为 WPF 词汇用法远比 XAML 内部函数用法常见,因此默认映射 WPF 词汇。
此 SDK 内,映射 XAML 语言内部函数支持的 x: 前缀约定后跟项目模板、示例代码和语言功能文档。 XAML 命名空间定义许多常用功能,即使对于基本 WPF 应用程序而言,这些功能也是必需的。 例如,若要通过分部类将任何代码隐藏加入到 XAML 文件,必须将该类命名为相关 XAML 文件根元素中的 x:Class 属性。 或者,XAML 页面中定义的任何要作为键控资源访问的元素都应在当前元素上设置 x:Key 属性。
------------------------------------------------------------------------------------------------------------------------------------
属性元素
<Button Width="10" Height="10"/>
属性可以直接使用元素名=“值”的方式设置。也可以“属性元素”的方式设置值
<Button>
<Button.Width>
10
</Button.Width>
<Button.Height>
10
</Button.Height>
</Button>
第二种方式是为了对属性赋值复杂对象使用。
Button的显示内容可以是文本也可以是图形。
<Button>
<Button.Content>
<Rectangle Height="40" Width="40"/>
</Button.Content>
</Button>
---------------------------------------------------------------------------------------------------------------------
类型转换器
Xaml编辑中,对属性的赋值直接是字符串。<Button Width="10" Height="10" Background="YellowGreen"/>,系统如何转换适当的对象(值)给元素呢,Background是System.Windows.Meida.Brush类,怎么与YellowGreen“”字符串相关联。这里就需要类型转换器,把字符串转换会想要的数据类型。可以为自定义数据类型写类型转换器。
----------------------------------------------------------------------------------------------------------------------
标记扩展
对元素赋值更复杂的数据对象,
包括绑定扩展、动态资源扩展、多绑定扩展、静态资源扩展、系统类型扩展(sys:)、标记扩展(x:)等。
<Button Height="10" Conten="{Binding Paht=Height , RelativeSource={RelariveSource Self}}">
标记扩展的代码卸载{}中间;入过要把{}当做字符使用,Conten="{}{Binding Paht=Height , RelativeSource={RelariveSource Self}}",增加一对{},后面的{}当做字符处理。{Binding Paht=Height , RelativeSource={RelariveSource Self}}会当做按钮文本显示。
Wpf学习20180605的更多相关文章
- WPF学习开发客户端软件-任务助手(下 2015年2月4日代码更新)
时光如梭,距离第一次写的 WPF学习开发客户端软件-任务助手(已上传源码) 已有三个多月,期间我断断续续地对该项目做了优化.完善等等工作,现在重新向大家介绍一下,希望各位可以使用,本软件以实用性为主 ...
- WPF学习05:2D绘图 使用Transform进行控件变形
在WPF学习04:2D绘图 使用Shape绘基本图形中,我们了解了如何绘制基本的图形. 这一次,我们进一步,研究如何将图形变形. 例子 一个三角形,经Transform形成组合图形: XAML代码: ...
- WPF学习之资源-Resources
WPF学习之资源-Resources WPF通过资源来保存一些可以被重复利用的样式,对象定义以及一些传统的资源如二进制数据,图片等等,而在其支持上也更能体现出这些资源定义的优越性.比如通过Resour ...
- WPF学习之路初识
WPF学习之路初识 WPF 介绍 .NET Framework 4 .NET Framework 3.5 .NET Framework 3.0 Windows Presentation Found ...
- WPF学习拾遗(二)TextBlock换行
原文:WPF学习拾遗(二)TextBlock换行 下午在帮组里的同事解决一个小问题,为了以后方便,把就把它收集一下吧. 新建一个TextBlock作为最基础的一个控件,他所携带的功能相对于其他的控件要 ...
- WPF学习(8)数据绑定
说到数据绑定,其实这并不是一个新的玩意儿.了解asp.net的朋友都知道,在asp.net中已经用到了这个概念,例如Repeater等的数据绑定.那么,在WPF中的数据绑定相比较传统的asp.net中 ...
- WPF学习:3.Border & Brush
上一章<WPF学习:2.Layout-Panels-Countainers>主要介绍了布局,容器和面板.这一章主要开始介绍Border(边界)和Brush(画刷). 代码地址:http:/ ...
- wpf学习
http://www.jikexueyuan.com/course/1231_3.html?ss=1 WPF入门教程系列二——Application介绍 http://www.cnblogs.com/ ...
- WPF学习笔记-用Expression Design制作矢量图然后导出为XAML
WPF学习笔记-用Expression Design制作矢量图然后导出为XAML 第一次用Windows live writer写东西,感觉不错,哈哈~~ 1.在白纸上完全凭感觉,想象来画图难度很大, ...
随机推荐
- 画PCB
1.AD16Design中Boardshape没有redefine board shape选项来修改板子的形状:{ 解决办法:在英文输入模式下按“1”键整个界面会变绿,此时就会有redefine bo ...
- 简析 __init__、__new__、__call__ 方法
简析 __init__.__new__.__call__ 方法 任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建.初始化.使 用.垃圾回收,不同的 ...
- 10-Mock模拟接口返回数据
1.安装mock 方法一:pip安装 命令行直接输入:pip install mock 方法二:官网下载mock安装包安装 下载安装包后,解压,命令行进入解压目录,执行python setup.py ...
- 【设计经验】2、ISE中ChipScope使用教程
一.软件与硬件平台 软件平台: 操作系统:Windows 8.1 开发套件:ISE14.7 硬件平台: FPGA型号:XC6SLX45-CSG324 二.ChipScope介绍 ChipScope是X ...
- 【洛谷3865】 【模板】ST表(猫树)
传送门 洛谷 Solution 实测跑的比ST表快!!! 这个东西也是\(O(1)\)的,不会可以看我上一篇Blog 代码实现 代码戳这里
- python写的压缩软件
import tkinterimport tkinter.filedialogimport osimport zipfileimport tkinter.messagebox #创建住窗口root = ...
- HTML学习二_HTML常用的行级标签,常用实体字符及表单标签
HTML常用的行级标签(行内元素)不独占一行### 有语义的行内元素 #### HTML链接 a标签 ```angular2html<a href="链接地址">链接文 ...
- Nginx 在 Linux 上的安装和配置
一.Nginx的安装 1.单台Nginx的安装 Nginx在Linux上的安装可以参考这篇博客:http://blog.csdn.net/molingduzun123/article/details/ ...
- ubuntu默认的Python版本号修改
ubuntu默认的Python是2.7版本的,键入Python3 就可以使用Python3.X版本.下面修改默认的Python版本, 1.删除/usr/bin 下的Python链接 sudo rm / ...
- 爬虫不过如此(python的Re 、Requests、BeautifulSoup 详细篇)
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 爬虫的本质就是一段自动抓取互联网信息的程序,从网络获取 ...