WPF知识整理

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

作者:李成富

撰写时间:2019年6月29日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

一、定义行和列

WPF CommunityToolkit 项目搭建 wpf tutorial_WPF

 

二、定义按钮

    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":设置滚动时按照元素进行滚动