第2章 WPF程基础.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 WPF程基础

由于WPF控件的Content属性可以显示多种不同内容,使用Style可控制控件不同外观和行为、Trigger允许以声明方式根据属性值来更改控件的外观和行为,模板允许控件修改自己外观,因此在多数情况下,使用上述功能可满足设计控件外观和行为的大部分需求,而不必创建新的控件。如果必须创建WPF控件可使用三种方案: 从UserControl类派生:这是最简单的方法,可利用现有控件来创建一个复合控件,例如一个重复使用的用户界面,可把该界面封装为一个控件,以方便以后使用。若要创作复合控件,复合控件类必须从 UserControl 同上类派生。这种控件也称为用户控件。 从Control类派生:如果希望通过 ControlTemplate修改控件外观,或者希望控件支持不同主题,可从 Control 派生,这种自定义控件外观仍然是现有控件的组合。由于许多控件是Control类的派生类,从这些控件派生用户控件也可以归为此类。 从FrameworkElement类派生:如不满足控件外观仅是现有控件的组合,而希望用代码对控件外观进行精确描述,可考虑。 【例2.46】本例创建一个WPF用户控件,该控件实现了一个数字钟,具体步骤如下: (1)创建WPF应用项目e2_46,并保存到e2_46文件夹中。 (2)右击解决方案管理器中的解决方案名称,在弹出的快捷菜单中选择添加(D)|新建项目(N)…菜单项,打开新建项目对话框。在模板(T)列表框中选择类库,在名称(N)辑框中键入项目名称:ClockLibrary,单击确定按钮,创建新项目。在该项目中定义复合控件,该控件实现了一个数字钟。e2_46解决方案有两个项目。 (3)删除ClockLibrary项目的Class1.cs文件。右击解决方案管理器中的ClockLibrary项目,在弹出的快捷菜单中选择添加(D)|用户控件(U)…菜单项,打开添加新项对话框,在对话框中选择用户控件(WPF),在名称(N)修改文件名称为:Clock.xaml,单击添加(A)按钮,在ClockLibrary项目中增加一个用户控件(WPF)。 (4)在用户控件窗体中放置Label控件。 (5)在Clock.xaml.cs文件头部增加语句: using System.Windows.Threading; (6)为窗体Clock类增加变量: private DispatcherTimer dispatcherTimer; (7)Clock类构造函数内容和2.16节例2.11的Window1类构造函数内容完全相同。定时器的Tick事件处理函数也和2.16节例2.11完全相同。 (8)单击菜单生成(B)|生成解决方案(B)…菜单项,生成Colock用户控件。 (9)打开e2_46项目的Window1窗体,按照例2_45方法添加ClockLibrary.dll的引用。 (10)修改Window1.xaml文件XAML标记如下。编译运行可看到一个时钟。 Window x:Class=e2_34.Window1 xmlns=/winfx/2006/xaml/presentation xmlns:x=/winfx/2006/xaml xmlns:local=clr-namespace:ClockLibrary;assembly=ClockLibrary Title=Window1 Height=300 Width=300 Grid local:Clock /local:Clock /Grid /Window 【例2.47】本例将例2.39实现的带加减号按钮文本框封装为一个控件。从UserControl类派生该控件可能是最简单的方法。本例从Control类派生这个带加减号按钮的文本框。具体步骤如下: (1)创建WPF应用项目e2_47,并保存到e2_47文件夹中。 (2)右击解决方案管理器中的项目名称,在弹出的快捷菜单中选择添加(D)|新建项(W)…菜单项,打开添加新项对话框。在列表框中选择自定义控件(WPF),在名称(N)编辑框中键入控件文件名称:MyControl.cs,单击添加(A)按钮,添加新项。增加了两个新文件:MyControl.cs和Themes文件夹中的Generic.xaml。 (3)打开Generic.xaml文件,将Border标记及标记中的内容替换为例2.39中的标记。 (4)修改wondow1.xaml文件的标记如下,阴影标记是增加的标记,其余标记未改变。 Window x:Class=e2_47.Window1 xmlns=/winfx/2006/xaml/presentation xmlns:x=/winfx/2006/xaml

文档评论(0)

quechui388620 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档