WPF开发指南Word格式文档下载.docx
《WPF开发指南Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《WPF开发指南Word格式文档下载.docx(62页珍藏版)》请在冰豆网上搜索。
3.1.4StackPanel错误!
3.1.5TabPanel错误!
3.1.6WrapPanel错误!
3.2畫圖形错误!
3.2.1線段错误!
3.2.2圓或橢圓错误!
3.2.3矩形错误!
3.2.4多邊形错误!
3.3Brushes错误!
3.3.1DrawingBrush错误!
3.3.2LinearGradientBrush错误!
3.3.3RadialGradientBrush错误!
3.3.4VisualBrush错误!
3.3.5ImageBrush错误!
3.4Resources错误!
3.5Triggers错误!
3.6文本错误!
文本错误!
4常用控制項错误!
4.1公共屬性错误!
4.2Border错误!
4.3CheckBox错误!
4.4ComboBox错误!
4.5Button错误!
4.6Hyperlink错误!
4.7List,ListItem错误!
4.8Menu错误!
4.9TextBlock错误!
4.10TabControl错误!
4.11ScrollViewer错误!
4.12Viewbox错误!
5數據邦定错误!
5.1XML错误!
5.2元素幫定错误!
5.3對象邦定错误!
5.4邦定到DataTable错误!
6故事板错误!
73D错误!
8部署错误!
9綜合實例错误!
1序言
在过去十年中,我们看到了应用程序开发模型形成了两个分支,传统的“智能客户端”安装应用程序,基于Web的应用程序,两者都为了在开发界内占据统治地位而展开竞争。
这两个模型都要求开发人员牺牲在另一个模型中被视为理所当然的功能。
Web应用程序提供了更大的作用范围、更简单的部署和简易性,以弥补状态的丢失、更为复杂的开发模型以及集成度较低的平台体验等缺点。
另一方面,Windows领域使人们开发的应用程序有希望脱机工作并充分利用客户端硬件,但丧失了部署的简易性以及可用于Web应用程序的无数种标记工具支持。
能够提供独立的、基于浏览器的应用程序、简易的部署、出色的工具支持和深度平台集成的客户端应用程序模型具有明显的作用。
WindowsPresentationFoundation(以前称为“Avalon”)是Windows中新的关键图形子系统,它为用户接口、2D和3D图形、文文件和媒体提供了统一的方法。
它在.NETFramework基础上生成,并利用Direct3D进行基于向量的呈现,为生成所有种类的浸入式应用程序提供了强大的解决方案。
另外,WindowsPresentationFoundation通过提供声明性编程模型来实现“工具性”和灵活性,从而使设计人员成为开发过程不可分割的组成部分。
WindowsPresentationFoundation提供的服务有
基本服务
XAML,PropertySystem,Input&
Eventing,Accessibility
媒体服务
2D,3D,Audio,Video,Text,Imaging,Animation,Effects,CompositionEngine
文档服务
XPSDocuments,OpenPackagingConventions
用户接口服务
ApplicationServices,Deployment,Controls,Layout,DataBinding
如今的开发人员面临着无数种不同技术和API的选择,具体取决于他们是面向2D图形(GDI或GDI+)、用户接口(USER32或Windows窗体)、媒体(DirectShow)还是3D(Direct3D或OpenGL)。
WindowsPresentationFoundation提供了一个与上述所有服务正交的单个模型,并允许将内容无缝地集成到单个应用程序。
可使用相同的构造来实现动画、数据绑定和样式设置,而无需顾及是面向2D、3D还是文本内容。
1.1声明性编程
WindowsPresentationFoundation引入XAML(可扩展应用程序标记语言),这是一种基于XML的语言,用于实例化和填充嵌套对象层次结构。
尽管XAML并非专门局限于WindowsPresentationFoundation,但它本质上是适合于诸如UI定义和构建这样的任务的。
XAML的设计使应用程序可在运行时分析和操纵动态工作流方案的UI逻辑。
重要的是,WindowsPresentationFoundation中体现的XAML/代码隐藏模型使设计人员和开发人员可使用诸如Expression“Sparkle”这样的工具以及第三方专家工具(包括ZAM3D和MobiformAurora),相互协作来完成客户端应用程序的设计和开发。
1.2编写高性能应用程
WindowsPresentationFoundation为编写丰富的应用程序提供了强大的功能,但是,它同时也可能带来性能问题,除非应用程序的设计考虑了目标计算机的不同特征。
WindowsPresentationFoundation适当地利用了硬件呈现。
它使用Direct3D在DirectX7(或更高版本)上提供了加速呈现,并且用DirectX9和PixelShader2.0硬件进一步优化了图形卡。
对于不具有上述功能的计算机,WindowsPresentationFoundation使用了软件呈现,即一个基于CPU的SSE和SSE2优化光栅化程序。
当WindowsPresentationFoundation无法使用硬件管线呈现某些内容,并且无法保证可以在所有计算机硬件配置中使用呈现输出时,也会使用该程序。
WindowsPresentationFoundation同时具有硬件和软件管线,并且两者具有不同的性能特征。
这可能使应用程序性能非常难以预测,因为存在两个代码路径。
实际上,硬件确实要快一些;
对于给定的应用程序,这只是一个设置最低要求的问题。
WindowsPresentationFoundation支持简单的运行时硬件检测,并且允许您使用资源词典针对运行应用程序的平台动态调整该应用程序。
WindowsPresentationFoundation是对应用程序开发人员或设计人员工具箱的极大的增强。
作为将来版本Windows的战略性呈现基础类库,它提供一个模型,该模型充分利用了基础图形硬件,并且为从独立应用程序到基于Web浏览器的应用程序再到文文件的所有方面提供了支持。
那些希望生成丰富的浸入式应用程序用户体验的应用程序开发人员,以及那些将要触及Web模型限制的人会因为及早采用WindowsPresentationFoundation而获得特别的好处。
1.3简易的部署
通过对独立应用程序和Web浏览器应用程序的支持,WindowsPresentationFoundation提供两种部署模型中的最佳模型。
Web浏览器应用程序从InternetExplorer内部运行—占据整个窗口或在嵌入式框架中。
它们提供Web应用程序所闻名的易于部署的特点,并且在部分信任的沙箱内操作(沙箱能够防止客户端计算机受到恶意应用程序的侵害)。
然而,它们仍然可以利用本地客户端硬件,并使用3D和媒体服务获得目前可以得到的最丰富的Web体验。
另一方面,独立应用程序通过ClickOnce或MSI技术在本地安装,并且提供对基础平台的完全访问。
1.4使设计人员与开发人员分开
WPF可使UI与逻辑之间的合约最小化,从而使开发人员与设计人员可以集中精力做他们最擅长的工作。
另外,通过融入强大的设计理念(如丰富2D、动画以及动态布局)并采用高度可工具化的标记格式表现它们,WPF使设计人员可以直接表达他们最具创造性的优秀想法,并成为独立的UI创建者。
以XAML作为交换格式的Expression试用EID(ExpressionInteractiveDesigner)的时候发现EID与FLASH一样有一个非常致命的弱点,就是绘图功能并不强大,没办法直接在软件中绘制非常精美的图形,为了保证良好的输出质量可以采用位图或EPS,不过都有点麻烦,GraphicDesigner制作的图形可以直接输出为XAML交由Expression进行交互制作,理论上是可以进行交互制作后,再返回GraphicDesigner中进行修改的,反正是XAML的描述,只要x:
name不会有什么变化的话,应该没有问题,看来如果用EID做出好东西,非得用GraphicDesigner不可。
(WPF设计开发流程图)
也可以把XAML和代码分开
XAMLFile
<
ButtonClick=“btnOK_Click”name=“btnOK”>
OK<
/Button>
C#Codefile
NamespaceMyCode
{
publicpartialclassMyDoc:
window
{
voidBtnOK_Click(objectsender,RoutedEventArtse)
{
btnOK.Backgroud=Brushes.Red;
}
}
}
1.5向量图形
WindowsPresentationFoundation充分利用了作为现代PC系统的组成部分的强大的图形处理单元。
本质上,组合引擎基于向量,允许对所有输出进行缩放以便与特定计算机的分辨率匹配。
呈现体系结构使用Direct3D来完成所有输出:
在使用硬件实现DirectX7或更高版本的视频卡上,WindowsPresentationFoundation尽可能地使用GPU来呈现输出。
在无法使用硬件呈现的情况下,可以退而求其次使用软件呈现。
最后,浮点逻辑像素系统和32位ARGB颜色支持提供丰富的、预见到未来技术需要(如高DPI显示器)的高保真体验。
1.6图形和文本服务
当前的Windows图形平台(GDI)具有跨越将近二十年的传统。
在过去几年中,3D领域已经发生了巨大的变革,但GDI开发人员并未从中得到多少好处。
目前的图形硬件进步主要集中于3D管线,并且WindowsPresentationFoundation被设计为基于较旧的2D技术的完全战略替代物,并且最大限度地使用了现代PC的图形功能。
图形的所有不同元素都经历了相同的管线:
2D、3D、文本、图像和视频。
WindowsPresentationFoundation为应用程序和内容提供主流图形服务。
它提供一个应用程序模型,而该模型利用在现代图形卡中流行的3D硬件支持。
WindowsPresentationFoundation更加注重基于向量的内容;
它提供分辨率独立性,将虚拟像素映像到逻辑像素,并且支持高DPI屏幕;
本机坐标系基于双精度数据类型。
新呈现模型的附带功能是,无需完成额外工作即可应用图像转换(例如,可将模糊效果或缩放因子应用于任何内容)。
WindowsPresentationFoundation还是更为广泛的图形生态系统的一个必不可少的组件:
例如,它利用新的WindowsVista显示驱动程序模型,它与打印模型共享功能,并且它具有通过终端服务实现的高保真远程处理。
1.7文文件生存周期
WindowsPresentationFoundation引入一组新的文档和打印技术。
需要将数据永久保存在本地存储区的应用程序可以使用OpenPackagingConventions(开放打包约定)—这是一种与Office12共享的基于ZIP的打包约定,它支持核心属性和自定义元数据、数字签名以及权限管理功能。
对于希望共享文档以便在多台计算机(即使未安装相应的应用程序)之间进行协作的应用程序而言,XMLPaperSpecification(XML档规范)允许以可打印、可移植的格式确立可视化效果。
WindowsPresentationFoundation中的所有呈现操作均通过Direct3D完成(实际上,WindowsVista硬件徽标程序需要DirectX9的GPU)。
通过将更多的图形处理操作移动到GPU中,我们可以让CPU有能力完成其它工作,从而提高性能,同时改善图形的质量。
然而,这些优点并不局限于3D领域—2D图形也利用了相同的服务;
WindowsPresentationFoundation内部未使用GDI(除非与旧式元素集成)。
对于安装有WindowsVista的计算机而言,新的显示驱动程序模型提供了优质的输出,从而使媒体密集型应用程序获得较高的性能。
1.82D
Shapes是开发人员可以使用的最基本的2D图形元素:
它们包括画刷、画笔、几何图形、转换等。
所有属性都是依赖性属性,这意味着可以将它们动画化、进行数据绑定等
StackPanel>
SliderName="
WidthSlider"
Maximum="
200"
Minimum="
10"
/>
RectangleFill="
LinearGradient0,01,1#FF3366FF#FFFFFFFF"
Height="
100"
Width="
{BindingElementName=WidthSlider,Path=Value}"
/StackPanel>
在Win32中,即使是像这样的简单任务也需要多得多的代码,因为需要管理重新绘制。
还请注意,像矩形(Rectangle)这样的形状派生于FrameworkElement,这意味着它们参与布局系统。
其影响是:
在下面的代码中,随着矩形的大小增加,椭圆形会缩小以填充剩余的可用空间
DockPanel>
<
DockPanel.Dock="
Top"
Red"
Width="
EllipseFill="
Blue"
2开发设计环境
2.1安装软件
开发WPF应用程序需要安装软件及其安装顺序如下
1、Framework3.0
2、SDKfor3.0(运行时会在线下载安装约1.2G)
3、VS2005
4、WinFXDevelopmentTools
安装好以上软件后,打开VS2005新建项目会看到Window(WinFX),如下图:
这样就可以建立WPF项目。
建立WPF项目有两种类型,WinFXWindowsApplication和WinFXWebBrowserApplication
2.2MicrosoftExpression
设计WPF应用程序需要安装软件及其安装顺序如下
3、MicrosoftExpression,(这里包含三个工具InteractiveDesigner,GraphicDesigner,WebDesigner)
4、3DToXAML(这个是第三方工具,其功能是,用3DMax,maya做好的3D转换成XAML语言)
2.2.1InteractiveDesigner
⏹主要功能特点
–全方位的设计能力
–全面的创造组件
–无缝集成的工作流程
–强大的开发能力
–增强的终端用户满意度服务
2.2.2GraphicDesigner
–实时特效功能
–流水线型工作环境
–创新的向量制功能
–灵活的位图制作与编辑功能
2.2.3WebDesigner
–无处不在的样式定义
–面向设计的用户接口
–创新的XML集成功能
–强大的WEB开发功能
–基于标准的设计功能
3WPF开发设计基础
3.1布局
多数应用程序设计人员都不知道其程序的运行大小。
不同PC间的屏幕大小差别很大。
此外,一些用户以最大化方式(充满整个屏幕)运行应用程序,而其它用户使用较小的窗口以便可以同时看到若干个应用程序。
这并没有妨碍一些设计人员设计只以一种大小工作的UI(出于某种原因,这在Web上很普遍)。
但是,如果您想满足用户的需要,就应该生成一个具有可以将自身修改为可用空间的布局的UI。
如果您需要使应用程序可访问且可本地化,这种适用性也非常有用。
一个足够适用的UI无需重新设计,即可以一种屏幕的低分辨率呈现,或者可以转换为所有单词都是两倍长度的语言。
WPF提供功能强大的布局元素工具箱,这些元素使得生成具有适应性布局的UI更加容易。
Windows窗体开发人员所熟知的简单停靠和锚定技术是可用的。
使用一个流风格布局也是可能的,其中UI元素的排列方式就像单词在文本中的排列方式一样:
从左到右,然后在当前行满时进入下一行首。
布局是任何用户界面子系统的基础服务之一,它涉及如何确定元素在窗口中的位置。
设计WindowsPresentationFoundation布局系统的目的是为灵活的可扩展模型提供支持,该模型针对内容进行优化,并且能够正确地处理数据、样式和控件。
传统的应用程序平台(如Win32)几乎没有布局的概念:
控件放置在画布上的(x,y)坐标系中,并且开发人员需要手动提供对确定任何元素的原点和尺寸的支持(考虑窗口大小调整和显示器DPI设置)。
另一方面,WindowsPresentationFoundation提供多种适合于内容并且在窗口内管理控件和项目位置的布局实现。
在WindowsPresentationFoundation中,几乎可以使用任何元素作为其它元素的宿主。
例如,Button可按如下方式包含图像:
ButtonWidth="
260"
>
ImageSource="
C:
\WINDOWS\Web\Wallpaper\follow.jpg"
WindowsPresentationFoundation提供六个布局面板,以便控制和约束子元素的大小和位置:
Canvas、DockPanel、Grid,StackPanel,TabPanel和WrapPanel。
3.1.1Canvas
Canvas使您可以进行(x,y)定位,这与GDI和GDI+目前提供的功能类似。
您还可以使用附加的属性来控制项的位置。
如下代码:
[浏览Demo]
Pagexmlns="
xmlns:
x="
Name="
root"
300"
>
CanvasBackground="
LightBlue"
400"
ButtonCanvas.Top="
50"
Canvas.Top="
ButtonCanvas.Bottom="
Canvas.Bottom="
ButtonCanvas.Left="
Canvas.Left="
ButtonCanvas.Right="
Canvas.Right="
/Canvas>
/Page>
这里,Canvas.Top和Canvas.Left是Canvas类中的属性,应用于Button以控制其位置。
示例代码2[浏览Demo]
CanvasHeight="
Top="
0"
Left="
Background="
/>
Green"
<
Canvas>
StackPanelOrientation="
Horizontal"
Canvas.Top="
<
TextBlock>
X坐标:
/TextBlock>
TextBoxName="
txtX"
Text=