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的更多相关文章

  1. WPF学习开发客户端软件-任务助手(下 2015年2月4日代码更新)

    时光如梭,距离第一次写的 WPF学习开发客户端软件-任务助手(已上传源码)  已有三个多月,期间我断断续续地对该项目做了优化.完善等等工作,现在重新向大家介绍一下,希望各位可以使用,本软件以实用性为主 ...

  2. WPF学习05:2D绘图 使用Transform进行控件变形

    在WPF学习04:2D绘图 使用Shape绘基本图形中,我们了解了如何绘制基本的图形. 这一次,我们进一步,研究如何将图形变形. 例子 一个三角形,经Transform形成组合图形: XAML代码: ...

  3. WPF学习之资源-Resources

    WPF学习之资源-Resources WPF通过资源来保存一些可以被重复利用的样式,对象定义以及一些传统的资源如二进制数据,图片等等,而在其支持上也更能体现出这些资源定义的优越性.比如通过Resour ...

  4. WPF学习之路初识

    WPF学习之路初识   WPF 介绍 .NET Framework 4 .NET Framework 3.5 .NET Framework 3.0 Windows Presentation Found ...

  5. WPF学习拾遗(二)TextBlock换行

    原文:WPF学习拾遗(二)TextBlock换行 下午在帮组里的同事解决一个小问题,为了以后方便,把就把它收集一下吧. 新建一个TextBlock作为最基础的一个控件,他所携带的功能相对于其他的控件要 ...

  6. WPF学习(8)数据绑定

    说到数据绑定,其实这并不是一个新的玩意儿.了解asp.net的朋友都知道,在asp.net中已经用到了这个概念,例如Repeater等的数据绑定.那么,在WPF中的数据绑定相比较传统的asp.net中 ...

  7. WPF学习:3.Border & Brush

    上一章<WPF学习:2.Layout-Panels-Countainers>主要介绍了布局,容器和面板.这一章主要开始介绍Border(边界)和Brush(画刷). 代码地址:http:/ ...

  8. wpf学习

    http://www.jikexueyuan.com/course/1231_3.html?ss=1 WPF入门教程系列二——Application介绍 http://www.cnblogs.com/ ...

  9. WPF学习笔记-用Expression Design制作矢量图然后导出为XAML

    WPF学习笔记-用Expression Design制作矢量图然后导出为XAML 第一次用Windows live writer写东西,感觉不错,哈哈~~ 1.在白纸上完全凭感觉,想象来画图难度很大, ...

随机推荐

  1. centos7.2安装图文详解

    centos镜像下载地址  https://www.centos.org/download/ Install CentOS 7 ----直接安装Test this media & instal ...

  2. hive 添加和删除分区

    命令如下: 增加分区 ', p_loctype='MHA'); 删除分区 ALTER TABLE my_partition_test_table DROP IF EXISTS PARTITION (p ...

  3. eclipse的这几个小玩意

    scroll lock   滚动锁定 word wrap  自动换行 show console  when standard  out changes   标准输出更改时显示控制台 show cons ...

  4. MyBatis 的 XML 映射文件使用说明

    简介 文档参考地址:http://www.mybatis.org/mybatis-3/zh/index.html MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器 ...

  5. 签名时出错: 未在路径 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin

    在运行winform程序时,由于清理解决方案等缘故,出现了下面的情况 解决办法:项目-属性-签名-取消勾选“为ClickOne清单签名” 问题完美解决

  6. Http状态信息

    一.HTTP协议1.简介:http超文本传输协议,基于请求与响应模式的,无状态的,应用层的协议.绝大读书的web开发都是建立在http协议之上的.2.http工作过程:当请求一个超链接时,http就开 ...

  7. Oracle客户端连接数据库配置

    配置文件和路径 配置文件:tnsnames.ora 默认路径:%ORACLE_HOME%\network\admin\tnsnames.ora,%ORACLE_HOME%通常在环境变量中使用. 我的路 ...

  8. ③JSP经典回顾

    jsp概述 jsp实际就是一个高级servlet,比servlet容易很多.jsp/servlet在jsp容器中运行.例如,Tomcat就是一个Servlet/jsp容器. 关于tomcat:[传送门 ...

  9. Windows2008/2012/2016多用户同时远程连接终端服务授权

    win2016多用户登录: 添加角色“远程桌面服务”,子角色“远程桌面会话主机”和“远程桌面授权”,重启 远程桌面授权,激活服务器,企业协议,协议号6565792,授权模式“每用户” 本地策略管理器g ...

  10. linux 命令 — split

    split 按照数据大小和行数来分割文件 指定分割文件后缀 split -b 10k data.file 按照每个文件10k分割文件(默认使用字母作为后缀) split -b 10k data.fil ...