WPF教程(十)使用App.xaml

App.xaml是應用的聲明起始點。在VS新建一個WPF應用,就能自動生成一個App.xaml,同時包含了後臺代碼文件App.xaml.cs。這兩個文件都是局部類,和Window類非常相似,讓你能夠使用標記語言和後臺代碼。

App.xaml.cs擴展了應用類,它是WPF窗口應用的中心類。.NET首先進入這個類的起始指令,從這裏啓動預想的窗口或者網頁。同時這裏訂閱了重要的應用事件,如應用啓動、未處理的異常等等。

App.xaml最常使用的特性是定義全局資源,它們可能會在整個應用裏面被使用或者訪問,如全局樣式。

App.xaml結構

自動生成的App.xaml代碼如下:

<Application x:Class="WpfTutorialSamples.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>

    </Application.Resources>
</Application>
主要來看StartupUri屬性,它指示了啓動應用的時候,加載哪個窗口或網頁。在這裏將加載MainWindow.xaml。可以通過替換來使用不同的窗體。

有時候你想獲取更多的控制,如窗口如何顯示,什麼時候顯示。其實可以刪去StartupUri及其值,然後在後臺代碼裏實現。後面會講。

App.xaml.cs結構

對應的代碼如下:
<span style="font-size:14px;">using System;
using System.Collections.Generic;
using System.Windows;

namespace WpfTutorialSamples
{
        public partial class App : Application
        {

        }
}</span>
從上面可以看到這個類是如何擴展應用類的,它允許我們在應用層填充內容。例如,可以訂閱啓動事件,用來指定啓動窗口。
看下面的例子:
<span style="font-size:14px;"><Application x:Class="WpfTutorialSamples.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                         Startup="Application_Startup">
    <Application.Resources></Application.Resources>
</Application></span>
StartupUri被一個啓動事件的訂閱所取代(通過XAML訂閱事件會在後面將到)。在後臺代碼使用事件,如下:
<span style="font-size:14px;">using System;
using System.Collections.Generic;
using System.Windows;

namespace WpfTutorialSamples
{
        public partial class App : Application
        {

                private void Application_Startup(object sender, StartupEventArgs e)
                {
                        // Create the startup window
                        MainWindow wnd = new MainWindow();
                        // Do stuff here, e.g. to the window
                        wnd.Title = "Something else";
                        // Show the window
                        wnd.Show();
                }
        }
}</span>
與前面使用StartupUri屬性相比,這裏可以在顯示啓動窗口之前對它進行操作,例如改變標題。儘管不是很常用,這可以訂閱事件,或者顯示一個啓動界面。當你擁有所有的控制權,就有了很多種可能。在後面的章節我們會深入研究。




發佈了12 篇原創文章 · 獲贊 43 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章