【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

相关推荐
ou.cs1 小时前
wpf 基于Behavior库 的行为模块
wpf
GesLuck3 小时前
C#控件开发4—仪表盘
前端·经验分享·c#
GesLuck14 小时前
C#开发实例1—彩票选号
开发语言·c#
neter.asia16 小时前
C# 窗体应用程序嵌套web网页,基于谷歌浏览器内核(含源码)
开发语言·c#
小猪写代码17 小时前
C语言:递归函数(新增)
算法·c#
滴_咕噜咕噜17 小时前
学习笔记(prism--视频【WPF-prism核心教程】)--待更新
笔记·学习·wpf
sukalot20 小时前
windows C#-在查询中返回元素属性的子集
开发语言·c#
向宇it20 小时前
【从零开始入门unity游戏开发之——C#篇32】C#其他不常用的泛型数据结构类、顺序存储和链式存储
java·开发语言·数据结构·unity·c#·游戏引擎
阿泽不想掉光头发1 天前
C#实现调用DLL 套壳读卡程序(桌面程序开发)
java·开发语言·后端·websocket·http·c#