WPF知识总结

一,X标记

XAML:声明型语言,UI与逻辑的剥离,Code-Behind。WPF的核心理念是数据驱动UI。

x:Class x:ClassModifier x:Name x:FieldModifier x:Key x:Shared x:Type x:Null x:Array x:Static x:Code x:XData


二,控件

(1)布局控件 Grid StackPanel DockPanel Canvas WrapPanel

(2)内容控件 Window Button

(3)带标题内容控件 Groupbox,TabItem

(4)条目控件 ListBox

(5)带标题条目控件 TreeViewItem MenuItem

(6)特殊内容控件 TextBox TextBlock Image


三,绑定

INotifyPropertyChanged UpdateSourceTrigger ValidationRule ValidatesOnTargetUpdated NotifyOnValidationError IValueConverter MultiBinding

BindingMode:TwoWay,OneWay,OneWayToSource,Default

为Binding指定Source的几种方法

(1) 把普通CLR类型单个对象指定为Source

(2)把普通CLR基类类型对象指定为Source

(3)把ADO.NET数据对象指定为Source

(4)使用XMLDataProvider把XML数据指定为Source

(5)把依赖对象(Dependency Object)指定为Source

(6)把容器的DataContext指定为Source

(7)通过ElementName指定Source

(8)通过Binding的RelativeSource属性相对地指定Source

(9)把ObjectDataProvider对象指定为Source

(10)把使用LINQ检索得到的数据对象作为Binding的源


四,依赖属性和附加属性

DependencyObject:实时分配空间 这种能力依靠DependencyProperty实现


五,路由事件

加载路由事件:AddHandler 查看事件VisualTree源头:e.OriginalSource 查看事件LogicalTree上的消息源头:e.Source 发送路由事件 button1.RaiseEvent(arg) 删除路由事件:RemoveHandler 自定义路由事件需要定义在自定义控件上


六,命令

命令的几个基本要素:

(1)命令(Command) 实现了ICommand的类,平常用的最多的是RoutedCommand类。

(2)命令源(Command Source) 实现了ICommandSource接口的类,很多UI界面元素都实现了这个接口

(3)命令目标(Command Target) 即命令将发送给谁。命令目标必须是实现了IInputElement接口的类。

(4)命令关联(Command Binding)负责把一些外围逻辑与命令关联起来。 加载命令相关事件

命令的使用步骤:

(1)创建命令类:即获得一个实现ICommand接口的类

(2)声明命令实例:使用命令时需要创建命令类的实例。

(3)指定命令的源:this.button1.Command=cmdInstance;

(4)指定命令目标:this.button1.CommandTarget=this.textBoxA

(5)设置命令关联:this.stackPanel.CommandBindings.Add(cb)

CommandParameter:如果把命令看作是飞向目标的炮弹,那么CommandParameter相当于装载在炮弹肚子里的”消息“。 获取CommandParameter:e.Parameter

StaticResource:程序载入内存时对资源的一次性使用,之后就不再去访问这个资源了。

DynamicResource:指的是在程序运行过程中仍然会去访问资源。


七,模板

WPF中的Template分为两大类:

(1)ControlTemplate:决定了控件长什么样子,并让程序员有机会在控制原有的内部逻辑基础上扩展自己的逻辑。

(2)DataTemplate:数据内容的表现形式,一条数据显示成什么样子,是简单的文本还是直观的图形动画就由它来决定。

DataTemplate常用的地方有3处,分别是:

(1)ContentControl的ContentTemplate属性。

(2)ItemsControl的ItemTemplate属性

(3)GridViewColumn的CellTemplate属性

ItemsControl具有一个名为ItemsPanel的属性,数据类型为ItemsPanelTemplate也是一种控件Template。

决定控件外观的是ControlTemplate,决定数据外观的是DataTemplate,他们正是Control类的Template和ContentTemplate两个属性的值。

<Style TargetType=""> <DataTemplate DataType="">

能够帮助层级控件显示层级数据的模板是HierarchicalDataTemplate。

ControlTemplate和DataTemplate两个类均派生自FrameworkTemplate类,这个类有个名为FindName的方法供我们检索其内部控件。


八,Style

Style Setter Trigger MultiTrigger DataTrigger MultiDataTrigger

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值