赞
踩
目录
MultiBinding+IMultiValueConverter
Static Resources/Dynamic Resources
DataTemplate/ControlTemplate/ItemsPanelTemplate
子元素水平(Horizontal)/垂直(Vertical)对齐方式失效问题
VisualTreeHelper/LogicalTreeHelper
FocusManager的FocusedElement/IsFocusScope
IsKeyboardFocused/IsKeyboardFocusWithin
MVVM的特点就是降低了xaml文件和cs文件的耦合度。
MVVM的优势就是把UI层和业务层进行分离,View就是负责如何显示数据和发送命令,ViewModel就是如何提供数据和执行命令。
RaiseCanExecuteChanged用于重新判断Command是否能够执行。
XAML语言是一种声明性语言,每见到一个标签就声明一个实例。
指定当前样式的父样式,可以用来进行样式继承。
Binding是用来给UI界面绑定ViewMode的数据。
触发器的主要作用就是根据Trigger的不同条件来自动更改外观的属性,或者执行一些动画操作。
当鼠标滑过时字体变成红色。
当checkbox勾选并且鼠标滑过时字体变绿色。
鼠标划入长度变长,鼠标移除长度变短。
DataGrid属性:
RowHeaderTemplate:行标题模板
CanUserAddRows:是否添加新行
IsReadOnly:是否可以编辑其中的值
VerticalScrollBarVisibility/HorizontalScrollBarVisibility 垂直/水平滚动条的显示
CurrentItem:当前单元格的行绑定的数据项
CanUserDeleteRows:是否可以删除行
RowStyle/CellStyle:行/单元格 样式
HeaderVisibility:行和列头的可见性
AlternatingRowsBAckground:交替行上使用的背景画笔
GridLinesVisibility:显示哪些网格线
VerticalGridLinesBrush/HorizontalGridLinesBrush 垂直/水平网格线画笔
RowHeaderWidth行标题宽度,ColumnHeaderHeight列标题高度,RowHeight行高
AutoGenerateColumns:是否自动创建列
SelectionUnit/SelectionMode:选择单元(单元格,行或者两者) /单选或多选
DataGrid中的列:
DataGridTextColum:文本显示内容,数据类型为String
DataGridCheckBoxColumn:复选框的形式显示内容,数据类型为Boolean
DataGridComboBoxColumn:下拉列表的形式显示内容,数据类型为Enum
DataGridHyperlinkColumn:超链接的形式显示内容,数据类型为Uri
DataGridTemplateColumn:模板列,自定义显示样式
UniformGrid:界面均等份布局。
StackPanel是堆栈面板,按照行或者列进行顺序排列,不会换行。
WrapPanel是流面板,在有限的容器范围内,可以自动换行或者换列。
DockPanel是停靠面板,让元素停靠在整个面板的某一条边上,然后拉伸元素填满全部的宽度或者高度。
UniformGrid是Grid的简化版,可以进行界面均等份布局,每个单元格大小相同。
Canvas类似于坐标系的面板,所有的元素通过设置坐标来决定其在坐标系中的位置。
ScrollViewer是带有滚动条的面板,在ScrollViewer中只能有一个子控件,如果要显示多个子控件,需要通过Panel控件进行包裹。
Border是一个装饰控件,用来绘制边框和背景。Border中只能有一个子控件,如果要显示多个子控件,需要通过Panel控件进行包裹。
Canvas/WrapPanel子元素HorizontalAlignment,VerticalAlignment属性无效。
Grid子元素HorizontalAlignment,VerticalAlignment属性有效。
控件模板就是控件的外衣,通过修改控件模板来定义控件的外观。
数据模板就是数据的外衣,通常用于在内容控件或者列表控件中显示数据。
面板模板就是面板的外衣,通常用于自定义控件的布局。
Dispatcher属性可以将其它线程投放到UI线程,让UI线程去执行。
通过AddOwer方法可以继承其它控件的依赖属性。
只读依赖属性是用
DependencyProperty.RegisterReadonly方法来替换DependencyProperty.Register方法。
附加属性最常见的场景就是布局容器中DockPanel和Grid的附加属性。
附加属性是用RegisterAttached方法替代了Register方法。
直接路由事件,它来自一个元素,并且不传递给其它的元素,比如MouseEnter事件就是当鼠标移动到一个元素上面时触发的事件,它就是一个直接路由事件。
冒泡事件是指从事件源传递到顶部元素,也就是在包含层次中向上传递的事件,比如MouseDown事件就是一个冒泡路由事件。它首先被单击的元素触发,然后就是该元素的父元素触发,以此类推,最后到达WPF元素树的顶部为止。
路由事件由只读的静态字段表示,在一个静态构造函数通过
EventManager.RegisterRoutedEvent函数注册,然后定义一个事件进行包装。
路由事件通过RaiseEvent方法触发,所有的元素都从UIElement类继承了该方法。
X:Name:实例类型不是派生在FrameworkElement上时,用x:Name来设置别名。
Application.DispatcherUnhandledException
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。