WPF-Prism

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

WPF与Prism开发周岳WPF介绍WPF架构WPF核心基础WPF控件WPF数据绑定WPF图形与动画MVVM设计模式MVVM设计模式与WPFPrism介绍Prism核心与基础使用Prism及MVVM设计模式开发WPF应用Prism应用进阶议程名称:WindowsPresentationFundation特点:•与分辨率无关•基于矢量的呈现引擎,•利用现代图形硬件的优势WPF介绍WPF案例WPF介绍演练:HelloWorld演练:HelloWorld应用(Day1-Lab01)WPF介绍•XAML-ExtensibleApplicationMarkupLanguage•UI与代码的分离XAML与代码隐藏WPF介绍App.xmal定义应用程序入口:StartupUri=“MainWindow.xaml”App.xamlWPF介绍演练:App.xamlWPF介绍演练:理解APP.XAMLWPF架构•以属性为中心的编程模型•XAML一种声明性标记语言StackPanelButtonContent=ClickMe//StackPanelWPF架构•对象元素(ObjectElements)Button/或者Button/Button•对象元素的特性(Attributes)语法ButtonBackground=“Blue”Foreground=“Red”Content=“一个按钮/XAMLWPF核心•对象元素的属性(Property)值语法ButtonButton.BackgroundSolidColorBrushColor=Blue//Button.BackgroundButton.Content一个按钮/Button.Content/Button演练XAMLWPF核心•Alignment属性•Margin属性•Padding属性演练定位界面元素WPF核心•Canvas界面元素•StackPanel界面元素•Grid界面元素•DockPanel界面元素•WrapPanel界面元素演练界面布局WPF核心依赖属性DependencyProperties•提供一种方法来基于其他输入的值计算属性值•其他输入:数据绑定、动画、模板、父子关系演示依赖属性WPF核心依赖属性的优点:1.减少内存开销2.实现值(Value)的继承演练3.实现变化提醒:INotifyPropertyChange演练依赖属性WPF核心何时自定义依赖属性-当需要如下情况设置属性值时:•值的继承•数据邦定•样式和模板•动画•回调依赖属性WPF核心附加属性AttachedProperties•在子元素上为其所属的父元素的属性值赋值:•Canvas.Top/Left•Panel.ZIndex•DockPanel.Dock演练附加属性WPF核心路由事件(RoutedEvent)一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件事件WPF核心路由事件的路由方向:•向上•向下(Preview前缀)•不路由演练路由事件WPF核心为什么使用路由事件:•控件组合与封装•单一处理程序,处理多个事件源路由事件WPF核心•Key事件与Keyboard类•Mouse事件与Mouse类输入WPF核心命令Command•命令源:•ICommandSource•Command•CommandParameter•命令:•ICommand•Execute•CanExecute•命令绑定:CommandBinding命令WPF核心命令WPF核心命令的优点:•UI与逻辑分离•命令支持绑定,且不同UI操作可绑定到同一命令处理逻辑•可控制命令在当前状态下是否可用演练资源(Resource):可重用或共享的对象或值资源的可见性:•局部资源:Window,UserControl,Element•全局资源:App.xaml-合并资源字典资源WPF核心样式Style:界面元素的外观•直接样式•默认样式•自定义样式•样式继承演练样式WPF核心模板Template:•数据模板DataTemplate•控件模板ControlTemplate演练模板WPF核心触发器Trigger•属性触发器•事件触发器演练触发器WPF核心WPF线程及Dispatcher•UI线程•Windows线程法则:只允许创建UI元素的线程(UI线程)访问这些UI元素•Dispatcher(Invoke,BeginInvoke)演练线程WPF核心数据绑定图示WPF数据绑定UI元素源转换•绑定的目标:•UI元素的依赖属性DataContext属性•绑定源:•对象的公有属性•DependencyObject数据绑定WPF数据绑定绑定的模式:•OneWay•TwoWay绑定的XAML语法:TextBlockText={BindingSampleValue,Mode=OneWay}/TextBoxText={BindingSampleValue,Mode=TwoWay}/演练数据绑定WPF数据绑定绑定遇到的问题:数据已修改,UI绑定却未更新数据更新通知:INotifyPropertyChanged演练INotifyPropertyChangedWPF数据绑定绑定数据集合UI元素:ListBox,ListView,DataGrid等等源:Array,List,ObservableCollection演练绑定与数据集合WPF数据绑定数据绑定的灵活性:可在数据模板中定义数据绑定演练数据绑定与数据模板WPF数据绑定绑定遇到的问题:数据源类型与绑定目标的属性类型不匹配数据转换:IValueConverter-System.Windows.Controls.BooleanToVisibilityConverter演练数据转换WPF数据绑定图形•2D形状ShapeRectangle,Ellipse•3DWPF图形变换Transform•旋转•缩放•扭曲•平移演练变换WPF图形图像Image多媒体MediaElementWPF图像与多媒体动画Animation快速播放一系列图像(其中每个图像与下一个图像略微不同)给人造成的一种幻觉WPF动画系统•计时系统:时间线•动画对象•动画对象属性:依赖属性、IAnimatable接口演练动画WPF动画•基本动画(From/To/By动画)•属性:FromToByDurationDoubleAnimationColorAnimation演练动画分类WPF动画关键帧动画(KeyFrames)•Value•KeyTimeDoubleAnimationUsingKeyFramesColorAnimationUsingKeyFrames演练动画分类WPF动画MVVMMVVM设计模式MVVMModelViewViewModel低耦合UI与代码(应用程序逻辑)分离分层UI,逻辑,数据适于单元测试MVVM优点MVVM设计模式WPF应用适合采用MVVM•XAML属性系统•数据绑定•命令绑定MVVM与WPFMVVM设计模式MVVM数据绑定MVVMMVVM设计模式MVVM命令绑定MVVMMVVM设计模式演练:使用MVVM设计模式开发WPF应用使用MVVM开发WPFPrism开源框架MVVMWPFSilverlightWindowsPhonePrism介绍Prism介绍类库Prism核心NotificationObject解决痛苦命名空间:Microsoft.Practices.Prism.ViewModel类:NotificationObjectINotifyPropertyChanged接口的痛苦OnPropertyChanged(SelectedOrder);Prism类库Prism核心DelegateCommand解决痛苦命名空间:Microsoft.Practices.Prism.Commands类:DelegateCommandRoutedCommand的痛苦不能将UI操作直接绑定到ViewModel的方法上演练:Prism与MVVM演练:使用NotificationObject作为ViewModel使用DelegateCommand实现命令绑定到ViewModel基本控件:TextBlock,TextBox,PasswodBox,CheckBox,RadioButton,ComboBox,Image,Slider,DatePicker布局控件:Canvas,StackPanel,Grid,DockPanel,WrapPanel,TabControl,Expandar数据控件:ListBox,ListView,DataGrid,TreeView,特殊控件:BulletDecorator,Viewbox控件分类WPF控件

1 / 53
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功