window窗体和控件分类

XAML有三个顶级元素:
Window、UserControl(用户控件,布局的时候像窗体那样布局就可以了)、Page把窗体以网页形式展现。而一个XAML页面里只能有一个顶级元素。而顶级元素里面只能有一个子元素。因此要有布局控件。
一.Window窗体属性
1.窗口的外观
Icon 指定窗口的图标; Title 指定窗口的标题;
WindowStyle指定窗口样式,有4个取值:
None,无边框;SingleBorderWindow,单边框;ThreeDBorderWindow,3D边框;ToolWindow,工具箱窗口
ResizeMode是指定大小调节样式,有4个取值:NoResize CanMinimize CanResize CanResizeWithGrip
2.窗口的位置
WindowStartupLocation指定窗口初始位置,有3个取值:
Manual,手工指定位置 CenterScreen,屏幕中央 CenterOwner,父窗体中央;
3.窗口的大小
Width、Height,分别表示窗口的宽度和高度,称为“尺寸属性”。
MaxWidth、MinWidth、MaxHeight、MinHeight,分别表示窗口最大宽度、最小宽度、最大高度、最小高度。可以通过得到和更改这些属性值,来获取和改变窗口的大小和长宽范围。
ActualWidth、ActualHeight,分别表示窗口的实际宽度和实际高度。实际尺寸属性是根据当前窗口大小、最小化时窗口大小和最大化时窗口大小来计算得到的,其值是只读的,也就是说,不能通过改ActualWidth、ActualHeight的值来更改窗口大小。
4.窗口的可见性和状态
Visibility,窗口可见性
Show、Hide,显示窗口和隐藏窗口的两个方法。
WindowState,窗口状态属性,有3个枚举值:
RestoreBounds,获取窗口在最小化或最大化之前的大小和位置
5.窗口的生命周期
Initialized:当窗口的FrameworkElement底层初始化时触发,即InitializeComponent方
法调用时触发。
LocationChanged:窗口被移动时触发。
Activated:窗口被激活时触发。
Deactivated:窗口处于非激活时(即其他窗口处于激活时)触发。
Loaded:显示窗口之前触发。
ContentRendered:当内容显示的时候触发。
Closing:尝试关闭窗口时触发,可以将参数CancelEventArgs的Cancel的属性设置为
true,取消关闭操作。
Closed:在窗口关闭后触发该事件,无法取消。
Unloaded:当关闭窗口并且从可视化树移除后触发。
二.控件分类
布局控件:是可以容纳多个控件或者嵌套其他布局的控件,用于在UI上组织和排列控件
内容控件:只能容纳一个控件或者布局控件作为他的内容。
带标题内容控件:相当于一个内容控件,但是可以加一个标题(Header),
条目控件:可以显示一列数据,一般情况下这列数据的类型是相同的。
带标题条目控件:相当于一个条目控件加上一个标题显示区。
特殊内容控件:比如TextBox容纳的是字符串、TextBlock可以容纳可自由控制格式的文本、Image容纳图片类型数据等

  1. WPF的内容模型
    控件的内容可以直接是数据,也可以是控件。当控件的内容还是控件的时候就形成了控件的嵌套。我们把被 嵌套的控件称为子级控件,这种控件嵌套在UI布局时尤为常见。因为允许控件嵌套,所以WPF的UI会形成一个树形结构。如果不考虑控件内部的组成结构,只观察由控件组成的“树”,那么这棵树为逻辑树 (LoicalTree);WPF控件往往是由更基本的控件构成的,即控件本身就是一颗树,如果连控件本身的树也考虑在内,则这棵比逻辑树更“繁茂”的树称为可视元素树(Visual Tree)。
    控件的内容就应该是标签的内容、子级控件就应该是标签的子级元素(简称标签的元素)。
     ContentControl族
    本族元素的特点如下:
    均派生自ContentControl类。它们都是控件(Control)。内容属性的名称为Content。只能由单一元素充当其内容。
     HeaderedContentControl族
    本族元素的特点如下:
    它们都派生自HeaderedContentControl类,HeaderedContentControl是ContentControl类的派生类。
    它们都是控件,用于显示带标题的数据。除了用于显示主体内容的区域外,控件还具有一个显示标题(Header)的区域。内容属性为Content和Header。无论是Content还是Header都只是容纳一个元素作为其内容。

你可能感兴趣的:(c#)