WPF知识整理
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Visual Studio 2015
作者:李成富
撰写时间:2019年6月29日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
XAML:声明型语言,UI与逻辑的剥离,Code-Behind。WPF的核心理念是数据驱动UI。
一、定义行和列
二、定义按钮
- 设置偏移:
- HorizontalAlignment和HorizontalContentAlignment:Left、Center、Rifht、Stretch(拉伸以占满整个空间)
- VerticalAlignment和VerticalContentAlignment:Top、Center、Bottom、Stretch(拉伸以占满整个空间)
- 设置占行、列
- Grid.Row="0",Grid.Column="0":占第一行、第一列
- Grid.Row="1",Gird.RowSpan="2":占第二行和第三行
- 设置边距
- Margin="256,30,0,0": 左上右下
- Margin="10": 四周都为10px
- Margin="10,20":左右为10px,上下为20px
- Padding:设置内边距
- 显示“<”和“>”
- <: <
- >: >
- 设置文本
- FontFamily="宋体,Times New Roman":设置字体为宋体,如果语言不支持宋体,则使用新罗马字体
- FontSize="16":设置字体大小为16px
- FontStyle="Italic":设置字体样式为斜体
- FontWeight="Bold":设置字体加粗
- FontStretch="Normal":设置字体不拉伸
- 设置按钮标记
- Cursor="Help":设置按钮为帮助
- CaretBrush="white":设置光标为白色
三、定义输入框
1、文本包装方式
- TextWrapping: NoWrap(不换行)、Wrap(换行)、WrapWithOverflow(换行,但是如果遇到一个单词不够放置,允许单词超出边界)
- 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、Bottom
3、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进行面板方式的选择
五、路由事件
- 直接路由事件:特点:起源于一个元素,并不能传递给其他元素。
MouseEnter事件就是直接路由事件
- 冒泡路由事件:特点:向上传递路由信息
MouseUp=”Window_MouseUp”
- 隧道路由事件:特点:向下传递路由信息
PreviewKeyDown=”Window_MouseUp”
- 键盘事件:特点:根据键盘的动作做出相应的行为
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":设置滚动时按照元素进行滚动