WPF知识整理
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者:李成富
撰写时间:2019年6月29日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
XAML:声明型语言,UI与逻辑的剥离,Code-Behind。WPF的核心理念是数据驱动UI。
一、定义行和列
二、定义按钮
1. 设置偏移:
2. HorizontalAlignment和HorizontalContentAlignment:Left、Center、Rifht、Stretch(拉伸以占满整个空间)
3. VerticalAlignment和VerticalContentAlignment:Top、Center、Bottom、Stretch(拉伸以占满整个空间)
4. 设置占行、列
5. Grid.Row="0",Grid.Column="0":占第一行、第一列
6. Grid.Row="1",Gird.RowSpan="2":占第二行和第三行
7. 设置边距
8. Margin="256,30,0,0": 左上右下
9. Margin="10": 四周都为10px
10. Margin="10,20":左右为10px,上下为20px
11. Padding:设置内边距
12. 显示“<”和“>”
13. <: <
14. >: >
15. 设置文本
16. FontFamily="宋体,Times New Roman":设置字体为宋体,如果语言不支持宋体,则使用新罗马字体
17. FontSize="16":设置字体大小为16px
18. FontStyle="Italic":设置字体样式为斜体
19. FontWeight="Bold":设置字体加粗
20. FontStretch="Normal":设置字体不拉伸
21. 设置按钮标记
22. Cursor="Help":设置按钮为帮助
23. CaretBrush="white":设置光标为白色
三、定义输入框
1、文本包装方式
1. TextWrapping: NoWrap(不换行)、Wrap(换行)、WrapWithOverflow(换行,但是如果遇到一个单词不够放置,允许单词超出边界)
2. xml:space="preserve":保留输入的空格
四、布局控件
1、StackPanel:特点:一个控件占一排或者一列。
(1)设置控件放置方向
Orientation: Vertical(默认值)、Horizontal
(2)设置控件最小、最大宽高
MinWidth: 最小宽度
MaxWidth: 最大宽度
MinHeight:最小高度
MaxHeight: 最大高度
2、DockPanel:特点:可以使控件占满自己呆的空间。
(1)LastChildFill(最后一个元素占满剩余空间):true(默认值)、false
(2)DockPanel.Dock: Left、Top、Right、Bottom3、WrapPanel:特点:所有控件从第一排挨着进行排列,满了再跳到下一排。
4、Grid:特点: 其实就是一个表格
(1)ShowGridLines: true(显示表格线)、false(默认)
(2)UseLayoutRounding: true(对小数四舍五入到整数,防止边缘模糊)、false(默认)
5、Canvas:基于坐标的面板
(1)Canvas.ZIndex: 设置三维高度
(2)Canvas.Left,Canvas.Top:左、上
(3)Canvas.Left,Canvas.Bottom:左、下
(4)Canvas.Right,Canvas.Top:右、上
(5)Canvas.Right,Canvas.Bottom:右、下
6、InkCanvas:墨水面板,通过EditingMode进行面板方式的选择
五、路由事件
1. 直接路由事件:特点:起源于一个元素,并不能传递给其他元素。
MouseEnter事件就是直接路由事件
1. 冒泡路由事件:特点:向上传递路由信息
MouseUp=”Window_MouseUp”
1. 隧道路由事件:特点:向下传递路由信息
PreviewKeyDown=”Window_MouseUp”
1. 键盘事件:特点:根据键盘的动作做出相应的行为
Focusable="True":设置控件能够获取焦点
TabIndex="0":设置控件能够使用Tab键获取焦点的排名,从0开始 - PreviewKeyDown="KeyEvent":按键按下前事件
KeyDown="KeyEvent":按键按下时事件
PreviewTextInput="TextInput":文本输入前事件 - TextChanged="TextBox_TextChanged":文本输入时事件
PreviewKeyUp="KeyEvent":按键升起前事件
KeyUp="KeyEvent":按键升起时事件
六、内容控件
(1)键盘事件
• IsCancel="True":按ESC键可以启动该控件点击事件
• IsDefault="True":按Enter键可以启动该控件点击事件
(2)提示功能ToolTip
• ToolTip="退出":提示功能
• Background="#60AA4030":设置提示的背景颜色,60表示透明度(0~100)
• Placement="Absolute" HorizontalOffset="100" VerticalOffset="10":设置提示的位置在绝对位置,水平距离屏幕左端100px,垂直距离屏幕上端10px
(3)单选按钮RadioButton
• GroupName=”rdo”:不在同一控件下的RadioButton是不互斥的,为了起到互斥的作用,需要添加此属性,表示她们是一组的
(4)复选框按钮CheckBox
• IsChecked="True":表示该项默认选中
• IsChecked="{x:Null}":表示该项不确定
• IsThreeState="True":表示该项有三种状态:未选中、不确定、选中
七、特殊容器控件:ScrollViewer
(1)VerticalScrollBarVisibility="Auto":设置垂直滚动条显示方式
(2)CanContentScroll="True":设置滚动时按照元素进行滚动