目錄
1、窗口類
2、實現(xiàn)窗口
2.1 為 MSBuild 配置窗口
3、窗口生存期
3.1 打開窗口
3.2 窗口激活
3.3 關閉窗口
3.4 窗口生存期事件
4、窗口位置
4.1 最頂層窗口和 z 順序
5、窗口大小
6、大小調(diào)整屬性的優(yōu)先級順序
7、窗口狀態(tài)
8、窗口外觀
8.1 重設大小模式
8.2 Window style
8.3 任務欄顯示
9、其他類型的窗口
用戶通過窗口與 Windows Presentation Foundation (WPF) 應用程序交互。 窗口的主要用途是托管使數(shù)據(jù)可視化并使用戶能夠與數(shù)據(jù)交互的內(nèi)容。 WPF 應用程序使用?Window
?類提供自己的窗口。 本文先介紹?
Window,然后講述在應用程序中創(chuàng)建和管理窗口的基礎知識。
本文使用從 C# 項目生成的 XAML。?如果使用 Visual Basic,則 XAML 看上去可能有不同。?這些差異通常出現(xiàn)在?x:Class
?屬性值上。 C# 包括項目的根命名空間,而 Visual Basic 不包括。
C# 的項目模板創(chuàng)建了一個?App
?類型,包含在?app.xaml?文件中。 在 Visual Basic 中,該類型名為?Application
,該文件名為?Application.xaml
。
1、窗口類
在 WPF 中,窗口由用于執(zhí)行以下操作的?
Window?類封裝:
- 顯示窗口。
- 配置窗口的大小、位置和外觀。
- 托管特定于應用程序的內(nèi)容。
- 管理窗口的生存期。
下圖展示了窗口的構成部分:
窗口分為兩個區(qū)域:非工作區(qū)和工作區(qū)。
窗口的非工作區(qū)由 WPF實現(xiàn),它包括大多數(shù)窗口所共有的窗口部分,包括:
- 標題欄 (1-5)。
- 圖標 (1)。
- 標題 (2)。
- 最小化 (3)、最大化 (4) 和關閉 (5) 按鈕。
- 包含菜單項的系統(tǒng)菜單 (6)。 單擊圖標 (1) 時出現(xiàn)。
- 邊框 (7)。
窗口的工作區(qū)是窗口的非工作區(qū)內(nèi)部的區(qū)域,由開發(fā)人員用于添加特定于應用程序的內(nèi)容,例如菜單欄、工具欄和控件。
- 工作區(qū) (8)。
- 大小調(diào)整手柄 (9)。 這是添加到工作區(qū) (8) 的控件。
2、實現(xiàn)窗口
典型窗口的實現(xiàn)既包括外觀又包括行為,外觀定義用戶看到的窗口的樣子,行為定義用戶與之交互時窗口的運行方式。?在 WPF 中,可以使用代碼或 XAML 標記實現(xiàn)窗口的外觀和行為。
但在一般情況下,窗口的外觀使用 XAML 標記實現(xiàn),行為使用代碼隱藏實現(xiàn),如以下示例所示。
<Window x:Class="WindowsOverview.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WindowsOverview"
>
<!-- Client area containing the content of the window -->
</Window>
下面的代碼是 XAML 的代碼隱藏。
using System.Windows;
namespace WindowsOverview
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
}
}
若要使 XAML 標記文件和代碼隱藏文件配合工作,需要滿足以下要求:
-
在標記中,
Window
?元素必須包含?x:Class
?屬性。 生成應用程序時,標記文件中存在?x:Class
?會使 Microsoft 生成引擎 (MSBuild) 生成派生自?
Window?的?partial
?類,其名稱由?x:Class
?屬性指定。 這要求為 XAML 架構 (xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
) 添加 XAML 命名空間聲明。 生成的?partial
?類實現(xiàn)?InitializeComponent
?方法,注冊事件和設置在標記中實現(xiàn)的屬性時將調(diào)用此方法。 -
在代碼隱藏中,類必須是?
partial
?類、名稱必須是標記中?x:Class
?屬性指定的相同名稱,并且它必須派生自?
Window。 這樣,代碼隱藏文件就與應用程序生成時為標記文件生成的?partial
?類相關聯(lián)。 -
在代碼隱藏中,
Window?類必須實現(xiàn)調(diào)用?InitializeComponent
?方法的構造函數(shù)。?InitializeComponent
?由標記文件已生成的?partial
?類實現(xiàn),用以注冊事件并設置標記中定義的屬性。
使用 Visual Studio 將新的?Window
?添加到項目時,
Window?通過同時使用標記和代碼隱藏實現(xiàn),并且包括必要的配置來創(chuàng)建此處所述的標記文件和代碼隱藏文件之間的關聯(lián)。
進行了此配置后,可以專注于在 XAML 標記中定義窗口的外觀,并可在代碼隱藏中實現(xiàn)窗口的行為。 以下示例顯示了一個窗口,該窗口中的一個按鈕定義了?
Click?事件的事件處理程序。 這是在 XAML 中實現(xiàn)的,處理程序是在代碼隱藏中實現(xiàn)的。
<Window x:Class="WindowsOverview.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WindowsOverview"
>
<!-- Client area containing the content of the window -->
<Button Click="Button_Click">Click This Button</Button>
</Window>
下面的代碼是 XAML 的代碼隱藏。
using System.Windows;
namespace WindowsOverview
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Button was clicked.");
}
}
}
2.1 為 MSBuild 配置窗口
實現(xiàn)窗口的方式?jīng)Q定為 MSBuild 配置窗口的方式。 對于使用 XAML 標記和代碼隱藏定義的窗口:文章來源:http://www.zghlxwxcb.cn/news/detail-756442.html
- XAML 標記文件配置為 MSBuild?
Page
?項。 - 代碼隱藏文件配置為 MSBuild?
Compile
?項。
.NET SDK 項目會自動導入正確的?Page
?和?Compile
?項,無需對其進行聲明。 如果為 WPF 配置了項目,則會將 XAML 標記文件文章來源地址http://www.zghlxwxcb.cn/news/detail-756442.html
到了這里,關于【W(wǎng)PF.NET開發(fā)】WPF中的窗口的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!