【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

相关推荐
△曉風殘月〆12 分钟前
WPF颜色(SolidColorBrush)和Win32颜色(COLOREF)互转的方法
wpf·win32·solidcolorbrush·colorref
friklogff33 分钟前
【C#生态园】构建你的C#操作系统:框架选择与实践
服务器·开发语言·c#
code bean3 小时前
【C#基础】函数传参大总结
服务器·开发语言·c#
shanshan20994 小时前
上位机系统架构 | 如何设计一个高效的多相机管理系统
c#·wpf·相机
ling1s6 小时前
C#基础(13)结构体
前端·c#
.Net Core 爱好者6 小时前
Redis实践之缓存:设置缓存过期策略
java·redis·缓存·c#·.net
云草桑6 小时前
逆向工程 反编译 C# net core
前端·c#·反编译·逆向工程
充值内卷8 小时前
WPF入门教学四 WPF控件概述
windows·ui·wpf
指尖流烟8 小时前
C#调用图表的使用方法
开发语言·c#
营赢盈英10 小时前
Azure OpenAI and token limit
ai·chatgpt·asp.net·azure·openai api