WPF学习笔记一

  WPF(Windows Presentation Foundation)是新一代的Windows应用开发框架,如果您是像我一样从0开始学习Windows应用程序的开发,WPF是不错的选择,更多关于WPF的介绍敬请疯狂的Google吧,以下是我的WPF学习笔记(Pro WPF in C# 2008、Matthew ),快乐分享。该笔记持续更新。

自划重点:
  • lEvery element in a XAML document maps to an instance of a .NET class. The name of the element matches the name of the class exactly.
    在XAML文档中每一个元素对应一个.NET类的实例。元素的标识符和所对应类的标识符完全相同。
  • Three top-level elements of WPF application-windows, page and application.
    WPF应用程序的最顶层元素有三种,分别是Windows、Page和Application。
  • The InitializeComponent() method plays a key role in WPF applications. For that reason, you should never delete the initializeComponent() call in your window’s constructor. Similarly, if you add another constructor, make sure it also calls InitializeComponent().
    InitializeComponent()方法在WPF应用程序中扮演着重要的角色。因此,在Window的构造函数中不要删除InitializeComponent()方法。类似的,如果添加其他的构造函数,保证标识符同样为InitializeComponent。 
 
注: 自划重点 部分笔者自行翻译,由于能力有限仅供参考,欢迎批评指正。
 
自我总结:
  • WPF的一大特色是设计与编码分离,这也是微软开发XAML的重大原因之一,通过这种分离的设计模式,开发人员可以将完成的程式交给设计人员,而设计人员可以很方便的通过操作XAML的工具(如Expression Blend)设计、调整和优化软件的布局与内容。
  • WPF的图形接口使用DirectX而非传统WinForms使用的GDI/GDI+,这将会提供更好的硬件加速,并且使用托管的C#组件方便快捷的开发WPF应用。
 
 
所遇生词:
  • intrinsic connection
  • translate painstakingly into your application
  • collaboration
  • to facilitate this design
  • encompasses the elements that describe WPF content
  • makes it faster to parse at runtime
  • convention dictates that all the namespaces you need
  • inadvertently create different XML-based languages with the same name
  • will be merged into the automatically generated portion
 
 
written by Kim 2/19/2009
查看更多原创技术文章/项目源码/视频教程
欢迎访问       http://www.bosnma.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Adorner是WPF中一种特殊的视觉元素,可以用于在其他元素上添加装饰或者附加功能。Adorner通常用于实现在用户界面上的一些特殊效果,比如鼠标悬停提示、错误提示、操作提示等。 Adorner需要继承自Adorner类,并在构造函数中调用基类的构造函数,并将需要装饰的元素作为参数传递进去。Adorner类中有一个AdornedElement属性,用于获取被装饰的元素。 Adorner类中有一个OnRender方法,用于绘制Adorner的外观。在OnRender方法中可以使用DrawingContext来绘制Adorner的外观,也可以使用VisualBrush来填充Adorner的内容。 Adorner的使用方法: 1. 创建一个Adorner类,继承自Adorner类,并在构造函数中调用基类的构造函数,并将需要装饰的元素作为参数传递进去。 2. 重写Adorner类的OnRender方法,用于绘制Adorner的外观。 3. 在需要装饰的元素上调用AdornerLayer.GetAdornerLayer方法获取AdornerLayer对象。 4. 调用AdornerLayer的Add方法,将Adorner添加到AdornerLayer中。 下面是一个简单的例子: ```csharp public class MyAdorner : Adorner { public MyAdorner(UIElement adornedElement) : base(adornedElement) { } protected override void OnRender(DrawingContext drawingContext) { base.OnRender(drawingContext); // 绘制Adorner的外观 drawingContext.DrawEllipse(Brushes.Red, null, new Point(AdornedElement.RenderSize.Width / 2, AdornedElement.RenderSize.Height / 2), AdornedElement.RenderSize.Width / 2, AdornedElement.RenderSize.Height / 2); } } // 在需要装饰的元素上添加Adorner var adornedElement = new Button { Content = "Click me!" }; var adornerLayer = AdornerLayer.GetAdornerLayer(adornedElement); var myAdorner = new MyAdorner(adornedElement); adornerLayer.Add(myAdorner); ``` 这个例子中,我们创建了一个MyAdorner类,继承自Adorner类,并重写了OnRender方法,在OnRender方法中绘制了一个红色的圆形。然后我们创建了一个Button元素,并将其作为参数传递给MyAdorner的构造函数,创建了一个AdornerLayer对象,并调用Add方法将MyAdorner添加到AdornerLayer中,从而实现了在Button元素上添加了一个红色的圆形装饰器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值