• 章节:24
  • 访问:1443
  • 时长:00:14
  • 日期:2019-02-03 01:04

WPF不再是一个GDI/GDI+的封装器,而是GDI/GDI+的替代技术,是通过DirectX进行工作的独立层次,这是WPF种最著名的变化。

WPF的目标是尽可能多的工作交给显卡进行处理,比如复杂的绘图通常交给GPU完成。这样可以让CPU空闲下来进行其他工作。提升性能。

WPF的其他服务。

1 类似Web的布局模式。(CSS + HTML)

2 丰富的绘图模型。

3 丰富的文本模型。

4 作为首要编程概念的动画

5 支持音频和视频媒体。

6 基于页面的应用程序。

7 XAML标记语言的支持。

8 分辨率无关性 传统windows应用受分辨率限制,开发人员通常嘉定分辨率是某个值。

WPF单位

WPF窗口和其所有元素都使用设备无关单位进行度量。一个设备无关单位是1/96英寸(2.5CM?)。再标准的显示器分辨率下面(它的dpi是96dpi),那么一个设备无关单位就刚好是一个物理像素。

dpi的计算公式

例如用wpf创建一个96x96的小按钮。

也就是 ,同样是一个1英寸x1英寸的按钮

在高分辨率的显示器下面 这个1英寸*一英寸的按钮。包含更多的像素。

而在低分辨率的显示器则包含更小的小像素。

例如系统的DPI是120dpi 比标准的96高

那么在120dpi下 96*96的按钮

WPF体系结构

一个多层的体系结构。

在顶层,应用程序和一个完全由托管的C#代码编写的一组高层服务进行交互。

硬件加速

分辨率无关性

控件无固定外观

声明式用户界面

基于对象的绘图

物理DPI和操作系统设置的DPI是不一样的。

读者如果想深入了解WPF的设备无关单位的问题 可以看这篇文章。

http://www.cnblogs.com/wangshuai/archive/2010/05/12/1733627.html

下面创建一个两英寸*两英寸的窗体

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
mc:Ignorable="d"
Title="北盟网校" Height="192" Width="192">
<Grid>
</Grid>
</Window>