Window窗口

这篇博客详细介绍了WPF中的Window窗口,包括XAML的顶级元素、窗口外观、大小、位置、可见性及状态的属性设置。窗口风格、大小调节、启动位置、前后顺序控制、实际尺寸和内容决定大小的特性都有深入解析。此外,还讨论了窗口的生命周期,如Initialized、LocationChanged、Activated、Deactivated等关键事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XAML三个顶级元素:

Window、UserControl(用户控件,布局的时候像窗口那样布局就可以了)、Page把窗口以网页形式展现。

而一个XAML页面里只能有一个顶级元素。而顶级元素里面只能有一个子元素。因此要有布局控件

Window窗口属性:

  1. 窗口的外观:

WPF中默认窗口框架的外观,主要取决于lcon、Title、WindowStyle、ResizeModel等属性。

Lcon:指定窗口的图标。  Title:指定窗口的标题   

WindowStyle:指定窗口样式,有4个取值:(1)None,无边框(当ResizeModel属性为NoResize时,仅剩下窗口核心)(2)SingleBorderWindow,单边框【默认】  (3)ThreeDBorderWindow,3D边框  (4)ToolWindow,工具箱窗口

ResizeModel:指定大小调节样式,有4个取值:(1)NoResize,不可调节,同时没有最大最小按钮(2)CanMinimize,不可调节。但可以最小化;(此时最大化按钮不可用)  (3)CanResize,可调节【默认】  (4)CanResizeWithGrip,可根据网格调节;(窗口右下脚显示可调节网格)

  1. 窗口的位置:

WindowStartupLocation:指定窗口初始位置,有3个取值:(1)Manual,手动指定位置,表示可以通过设置其Top、Left属性值来决定窗口的初始位置

  1. CenterScreen,屏幕中央  (3)CenterOwner,父窗体中央

Topmost调节窗口的前后顺序,属性值为true时,窗口位于最前。

Topmost值为true的窗口,位于Topmost值为false的窗口之前;

Topmost值都为true的窗口,获得焦点的窗口位于前。

  1. 窗口的大小:

Width、Height,分别表示窗口的宽度和高度,称为“尺寸属性”。

MaxWidth、MinWidth、MaxHeight、MinHeight,分别表示窗口最大宽度、最小宽度、最大高度、最小高度。可以通过得到和更改这些属性值,来获取和改变窗口的大小和长宽范围。

ActualWidth、ActualHeight,分别表示窗口的实际宽度和实际高度,称为“实际尺寸属性”。

实际尺寸属性是根据当前窗口大小、最小化时窗口大小和最大化时窗口大小来计算得到的,其值是只读的,也就是说,不能通过改变ActualWidth、ActualHeight的值来更改窗口大小。

SizeToContent,表示窗口大小由内容决定,有4个取值:(1)Manual,手工【默认】(2)Width,窗体宽度由内容决定  (3)Height,窗体高度由内容决定

(4)WidthAndHeight,窗体大小由内容决定

如果内容尺寸超过了窗口的最大或最小范围,还是以最大/最小范围为主。如果手工指定了窗口的Width、Height 属性,那么SizeToContent将被忽略。

  1. 窗口的可见性和状态:

Visibility,窗口可见性,有4个枚举值:(1)Visible,可见

(2)Hidden,隐藏 (3)Collapsed,折叠

虽然窗口类认为Collapsed与Hidden一样,但二者区别在于,Hidden仅仅将元素设为不可见,但是元素在画面上依然占有空间;而Collapsed,在不可视的基础上,能将元素在画面上的占位符清除,元素彻底不影响画面。

(4)Show、Hide,显示窗口和隐藏窗口的两个方法。

如果窗口的ShowInTaskbar属性值为true,Hide不但隐藏窗口本身,同时隐藏其在任务栏上的图标。

WindowState,窗口状态属性,有3个枚举值:(1)Normal,正常

(2)Maximized,最大化 (3)Minimized,最小化

RestoreBounds,获取窗口在最小化或最大化之前的大小和位置,有4个枚举值,Top上、Left左、Width宽、Height高。

  1. 窗口的生命周期

关于各事件的描述:

Initialized:当窗口的FrameworkElement底层初始化时触发,即InitializeComponent方法调用时触发。

LocationChanged:窗口被移动时触发。

Activated:窗口被激活时触发

Deactivated:窗口处于非激活时(即其他窗口处于激活时)触发。

Loaded:显示窗口之前触发。

ContentRendered:当内容显示的时候触发。

Closing:尝试关闭窗口时触发,可以将参数CancelEventArgs的Cancel的属性设置为true,取消关闭操作。

Closed:在窗口关闭后触发该事件,无法取消。

Unloaded:当关闭窗口并且从可视化树移除后触发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值