【WPF系列】- Window详解
文章目录
- [【WPF系列】- Window详解](#【WPF系列】- Window详解)
一、概述
用户通过窗口与Windows Presentation Foundation(WPF)应用程序交互。窗口的主要用途是托管使用数据可视化并使用户能够与数据交互的内容。WPF应用程序使用Window类提供自己的窗口。
二、WPF中Window类
- 显示窗口
- 配置窗口的大小,位置和外观
- 托管特定于应用程序的内容
- 管理窗口的生存期
三、Window类实现
Window分为两个区域:非工作区(Non-Clinet Area)和工作区(Client Area)。
其中的非工作区是由WPF实现的,包括大多数Window共有的部分,包括:
-
Border : 边框
-
Title:标题
-
Icon:图标
-
Minimize, Maximize, Restore Button: 最小化, 最大化, 还原 按钮
-
Close Button : 关闭按钮
-
System Menu : 系统菜单
-
Resize Grip : 调整大小拖动块
四、Window属性
序号 | 属性名称 | 说明 |
---|---|---|
1 | ActualHeight | 获取此元素的呈现高度 |
2 | ActualWidth | 获取此元素的呈现宽度 |
3 | AllowDrop | 获取或设置一个值,该值指示此元素能否用作拖放操作的目标。 这是依赖项属性 |
4 | AllowTransparency | 获取或设置一个值,该值指示窗口的工作区是否支持透明。 |
5 | AreAnyTouchesCaptured | 获取一个值,该值指示在此元素上是否至少捕获了一次触摸。 |
6 | AreAnyTouchesCaptureWithin | 获取一个值,该值指示在此元素或其可视化树中的任何子元素上是否至少捕获了一次触摸。 |
7 | AreAnyTouchesDirectlyOver | 获取一个值,该值指示在此元素上是否至少按下了一次触摸设备 |
8 | AreAnyTouchesOver | 获取一个值,该值指示在此元素或其可视化树中的任何子元素上是否至少按下了一次触摸设备。 |
9 | Backgound | 获取或设置一个用于描述控件背景的画笔 |
10 | BindingGroup | 获取或设置用于该元素的BindingGroup |
11 | BorderBrush | 获取或设置一个用于描述控件的边框背景的画笔 |
12 | BorderThickness | 获取或设置控件的边框宽度 |
13 | CacheMode | 获取或设置UIElement的缓存表示形式 |
14 | Clip | 获取或设置用于定义元素内容轮廓的几何图形。 这是依赖项属性。 |
15 | ClipToBounds | 获取或设置一个值,该值指示是否剪切此元素的内容(或来自此元素的子元素的内容)使其适合包含元素的大小。 这是依赖项属性。 |
16 | CommandBindings | 获取与此元素关联的CommandBinding对象的集合。CommandBinding为此元素启用命令处理,并声明命令,命令的事件和由此元素附加的处理程序之间的链接。 |
17 | Content | 获取或设置ContentControl的内容 |
18 | ContentStringFormat | 获取或设置一个撰写字符串,该字符串指定如果Content属性显示为字符串,应如何设置该属性的格式 |
19 | ContentTemplate | 获取或设置用于显示ContentControl内容的数据模板 |
20 | ContentTemplateSelector | 获取或设置一个模板选择器,以使应用程序编写器能够提供自定义模板选择逻辑 |
21 | ContextMenu | 获取或设置上下文菜单元素,每当通过用户界面 (UI 从此元素内) 请求上下文菜单时,应显示该元素。 |
22 | Cursor | 获取或设置在鼠标指针位于此元素上时显示的光标。 |
23 | DataContext | 获取或设置元素参与数据绑定时的数据上下文 |
24 | DefaultStyleKey | 获取或设置在使用或定义主题样式时要用于引用此控件样式的键 |
25 | DependencyObjectType | DependencyObjectType获取包装此实例CLR类型的 |
26 | DesiredSize | 获取在布局流程的度量传递过程中此元素计算所得的大小。 |
27 | DialogResult | 获取或设置对话框结果值,此值是从 ShowDialog()方法返回的值。 |
28 | Effect | 获取或设置需要应用于UIElement的位图效果。这是依赖项属性 |
29 | FlowDirection | 获取或设置一个值,该值指示元素能否得到焦点。这是依赖项属性。 |
30 | Focusable | 获取或设置一个值,该值指示元素能否得到焦点。 这是依赖项属性。 |
31 | FocusVisualStyle | 获取或设置一个属性,该属性允许自定义此元素在捕获到键盘焦点时要应用于此元素的外观、效果或其他样式特征。 |
32 | FontFamily | 获取或设置控件的字体系列。 |
33 | FontSize | 获取或设置字号。 |
34 | FontStretch | 获取或设置字体在屏幕上紧缩或加宽的程度 |
35 | FontStyle | 获取或设置字体样式 |
36 | FontWeight | 获取或设置指定字体的粗细。 |
37 | ForceCursor | 获取或设置一个值,该值指示这是否FrameworkElement应强制用户界面(UI)呈现由属性声明的Cursor光标。 |
38 | Forceground | 获取或设置一个用于描述前景色的画笔。 |
39 | HandlesScrolling | 获取一个值,该值指示控件是否支持滚动。 |
40 | HasAnimatedProperties | 获取一个值,该值指示此元素是否具有任何进行动画处理的属性。 |
41 | HasContent | 获取一个值,该值指示 ContentControl是否包含内容 |
42 | HasEffectiveKeyboardFocus | 获取一个值,该值指示UIElement是否具有焦点 |
43 | Height | 获取或设置元素的建议高度。 |
44 | HorizontalAlignment | 获取或设置在父元素(如 Panel 或项控件)中组合此元素时所应用的水平对齐特征。 |
45 | HorizontalContentAlignment | 获取或设置控件内容的水平对齐方式。 |
46 | Icon | 获取或设置窗口的图标 |
47 | InputBindings | 获取与此元素关联的输入绑定的集合。 |
48 | InputScope | 获取或设置此FrameworkElement使用的输入的上下文 |
49 | IsActive | 获取一个值,该值指示窗口是否为活动窗口 |
50 | IsArrangeValid | 获取一个值,该值指示此元素布局中的子元素的计算大小和位置是否有效 |
51 | Left | 获取或设置窗口左边缘相对于桌面的位置。 |
52 | Name | 获取或设置元素的标识名称。 该名称提供引用,以便代码隐藏(如事件处理程序代码)在 XAML 处理器处理期间构造标记元素后可以引用它。 |
53 | Opacity | 获取或设置在用户界面 (UI) 呈现时应用于整个 UIElement的不透明度因子。 这是依赖项属性。 |
54 | Style | 获取或设置此元素呈现时所使用的样式。 |
55 | Template | 获取或设置控件模板。 |
56 | VerticalAlignment | 获取或设置在父元素(如面板或项控件)中组合此元素时所应用的垂直对齐特征。 |
57 | Visibility | 获取或设置用户界面 (UI) 此元素的可见性。 这是依赖项属性 |
58 | Width | 获取或设置元素的宽度。 |
59 | WindowStartupLocation | 获取或设置窗口首次显示时的位置。 |
60 | WindowState | 获取或设置一个值,该值指示窗口是处于还原、最小化还是最大化状态。 |
61 | WindowStyle | 获取或设置窗口的边框样式。 |
五、方法
序号 | 方法名 | 说明 |
---|---|---|
1 | Activate | 尝试将窗口置于前台并激活它 |
2 | AddChild(Object) | 将指定对象作为ContentControl的子级添加 |
3 | AddHandler(RoutedEvent,Delegate) | 为指定的路由事件添加路由事件处理程序,并将该处理程序添加到当前元素的处理程序集合中。 |
4 | AddText(String) | 将指定文本字符串添加到ContentControl中 |
5 | Close() | 手动关闭Window |
6 | FindName(String) | 查找具有提供的标识符名的元素。 |
7 | FindResource(Object) | 搜索具有指定密钥的资源,如果未找到请求的资源,则会引发异常。 |
8 | Focus() | 尝试将焦点设定到此元素上。 |
9 | Hide() | 使窗口不可见 |
10 | Show() | 打开窗口并返回,而不等待新打开的窗口关闭 |
11 | ShowDialog() | 打开一个窗口,并且仅在新打开的窗口关闭后才返回 |
六、事件
序号 | 事件名 | 说明 |
---|---|---|
1 | Activated | 在窗口成为前台窗口时发生。 |
2 | Closed | 在窗口即将关闭时发生。 |
3 | Closing | 在调用Close()之后立即发生,并且可进行处理以取消关闭窗口 |
4 | DataContextChanged | 在此元素的数据上下文更改时发生。 |
5 | Deactivated | 在窗口成为后台窗口时发生。 |
6 | GotFocus | 在此元素获得逻辑焦点时发生。 |
7 | Loaded | 当对元素进行布局、呈现,且可将其用于交互时发生。 |
8 | LocationChanged | 在窗口的位置改变时发生。 |
9 | MouseDoubleClick | 在双击或多次单击鼠标按钮时发生。 |
10 | MouseDown | 在指针位于此元素上并且按下任意鼠标按钮时发生。 |
11 | MouseEnter | 在鼠标指针进入此元素的边界时发生。 |
12 | MouseLeave | 在鼠标指针离开此元素的边界时发生。 |
13 | MouseLeftButtonDown | 在鼠标指针位于此元素上并且按下鼠标左键时发生。 |
14 | MouseMove | 在鼠标指针位于此元素上并且移动鼠标指针时发生。 |
15 | MouseUp | 在鼠标指针位于此元素上并且松开任意鼠标按钮时发生。 |
16 | SizeChanged | 当此元素上的ActualHeight或ActualWidth属性的值发生更改时发生 |
17 | StateChanged | 在窗口的WindowState属性更改时发生 |
18 | Unloaded | 当从加载的元素的元素树中移除元素时发生。 |
七、参考
https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.window?view=windowsdesktop-7.0