代码改变世界

WPF Summary:Window外观

2011-03-29 15:56  海蓓娜楽  阅读(871)  评论(0编辑  收藏  举报

      通过向窗口工作区添加窗口特定内容,可以更改窗口工作区的外观。 为了配置非工作区,Window 提供了多个属性,包括设置窗口图标的 Icon 和设置窗口标题的 Title。

      除此之外,还可以通过配置窗口的大小调整模式、窗口样式,以及窗口是否显示为桌面任务栏中的按钮,来更改非工作区边框的外观和行为。我们下面继续讲解一些Window的重要常用的一些特性。

Window 位置

      当窗口弹出时,窗口在相对于桌面的 x 和 y 维度有一个坐标位置。 可以通过Left 和 Top 属性来确定此位置。可以设置这些属性以更改窗口的位置。

      通过将 WindowStartupLocation 属性设置为下面的 WindowStartupLocation 枚举值之一,还可以指定 Window 第一次出现时的初始位置:

Ø Manual(默认):Window 的启动位置可从代码中设置,或者使用默认的 Windows 位置;

Ø CenterScreen:Window 的启动位置位于包含鼠标光标的屏幕的中央;

Ø CenterOwner:Window 的启动位置位于包含它的 Window 的中央,由 Window.Owner 属性指定。

      如果将起始位置指定为 Manual,并且未设置 Left 和 Top 属性,则 Window 将向 Windows 请求显示的位置。

Window 大小

      Window大小由多个属性确定,包括各种宽度和高度属性以及 SizeToContent。窗口宽度由 MinWidth、Width 和 MaxWidth 管理窗口高度由 MinHeight、Height 和 MaxHeight 管理。因为各个宽度值和高度值各自指定了一个范围,所以可调整大小的窗口的宽度和高度可以是相应维度的指定范围内的任何值。 若要获取窗口的当前宽度和高度,请分别通过 ActualWidth 和 ActualHeight 获取。如果您想让窗口的宽度和高度适应窗口内容的大小,则可以使用 SizeToContent 属性,该属性具有下面的值:

Ø Manual(默认):不起任何作用;

Ø Width:可以适应内容宽度,这与将 MinWidth 和 MaxWidth 设置为内容的宽度具有相同的效果;

Ø Height:可以适应内容高度,这与将 MinHeight 和 MaxHeight 设置为内容的高度具有相同的效果;

Ø WidthAndHeight:可以适应与内容宽度和高度,这与将 MinHeight 和 MaxHeight 设置为内容的高度并将 MinWidth 和 MaxWidth 设置为内容的宽度具有相同的效果。

Window 大小调整模式

      可以通过设置 ResizeMode 属性来配置窗口调整大小的方式,该属性具有下面的值:

Ø NoResize:无法调整窗口的大小。标题栏中不显示“最小化”和“最大化”按钮;

Ø CanMinimize:只能最小化和还原窗口。 同时显示“最小化”和“最大化”按钮,但只有“最小化”按钮处于启用状态;

Ø CanResize(默认):可以调整窗口的大小。同时显示“最小化”和“最大化”按钮,并且两个按钮均处于启用状态;

Ø CanResizeWithGrip:可以调整窗口的大小。 同时显示“最小化”和“最大化”按钮,并且两个按钮均处于启用状态。 窗口的右下角显示一个大小调整手柄。

Window 状态

      在可调整大小的Window中,Window可以有三种状态:正常、最小化和最大化。 处于正常状态的窗口是窗口的默认状态。处于此状态的窗口如果是可调整大小的,则允许用户使用大小调整手柄或边框来移动窗口或调整窗口大小。

      处于最大化状态的窗口会扩展到可能达到的最大大小,而最大大小只能与 MaxWidth、MaxHeight 和 SizeToContent 属性规定的大小相同。 与最小化窗口一样,最大化窗口的大小也无法通过使用大小调整手柄或拖动边框来调整。

注:窗口的 Top、Left、Width 和 Height 属性的值始终表示正常状态的值,即使当窗口当前处于最大化或最小化状态时也是如此。

      除此之外,我们可以通过设置 WindowState 属性来配置窗口的状态,该属性取以下值:

Ø Normal(默认):还原窗口;

Ø Minimized:最小化窗口;

Ø Maximized:最大化窗口。

      窗口的默认外观包括一个任务栏按钮,有些类型的窗口没有任务栏按钮。我们通过设置ShowInTaskbar 属性(默认情况下为 true)可以控制是否显示窗口的任务栏按钮。

Window 样式

      从窗口的非工作区公开的边框适合大多数应用程序。 但是,在有些情况下,可能需要使用不同类型的边框,或根本不需要边框,这要取决于窗口的类型。

      若要控制窗口的边框的类型,就要用到窗口的 WindowStyle 属性:

Ø None:仅工作区可见,不显示标题栏和边框(WindowStyle为None时NavigationWindow将仍然显示导航UI);

Ø SingleBorderWindow(默认):具有单个边框的窗口;

Ø ThreeDBorderWindow:具有3D边框的窗口;

Ø ToolWindow:固定工具窗口。