WPF筆記(一)

quguiliang 13年前發布 | 3K 次閱讀 Evince

WPF 作為 .NET Framework 類型的一個子集存在,這些類型大多位于 System.Windows 命名空間。如果您以前已使用 .NET Framework 通過諸如 ASP.NET Windows 窗體 之類的托管技術生成應用程序,那么您應該熟悉 WPF 的基本編程體驗;您可以使用您最喜愛的 .NET Framework 編程語言(如 C# Visual Basic)實例化類、設置屬性、調用方法以及處理事件。

XAML 是一種基于 XML 的標記語言,用于以聲明的方式實現應用程序的外觀。它通常用于創建窗口、對話框、頁面和用戶控件,并用控件、形狀和圖形填充它們。

下面的示例使用 XAML 實現一個窗口的外觀,該窗口中只包含一個按鈕。

<Window

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    Title="Window with Button"

    Width="250" Height="100">

 

  <!-- Add button to window -->

  <Button Name="button">Click Me!</Button>

 

</Window>

具體而言,此 XAML 分別使用 Window Button 元素定義一個窗口和一個按鈕。每個元素均配置了屬性,如 Window 元素的 Title 屬性,用于指定窗口的標題欄文本。在運行時,WPF 將標記中定義的元素和屬性轉換為 WPF 類的實例。

下圖演示了 XAML 在上一示例中定義的 用戶界面 (UI)

 

代碼隱藏

應用程序的主要行為是實現響應用戶交互的功能,包括處理事件(如,單擊菜單、工具欄或按鈕),并調用業務邏輯和數據訪問邏輯作為響應。在 WPF 中,此行為通常在與標記關聯的代碼中實現。此類代碼稱為代碼隱藏。下面的示例演示上一示例中的代碼隱藏和更新的標記。

<Window

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    x:Class="SDKSample.AWindow"

    Title="Window with Button"

    Width="250" Height="100">

 

  <!-- Add button to window -->

  <Button Name="button" Click="button_Click">Click Me!</Button>

 

</Window>

 

using System.Windows; // Window, RoutedEventArgs, MessageBox

 

namespace SDKSample

{

    public partial class AWindow : Window

    {

        public AWindow()

        {

            // InitializeComponent call is required to merge the UI

            // that is defined in markup with this class, including

            // setting properties and registering event handlers

            InitializeComponent();

        }

 

        void button_Click(object sender, RoutedEventArgs e)

        {

            // Show message box when button is clicked

            MessageBox.Show("Hello, Windows Presentation Foundation!");

        }

    }

}

在此示例中,代碼隱藏實現一個從 Window 類派生的類。x:Class 屬性用于將標記與代碼隱藏類相關聯。InitializeComponent 是從代碼隱藏類的構造函數中調用的,用于將標記中定義的 UI 與代碼隱藏類相合并。((生成應用程序時將為您生成 InitializeComponent,因此您不需要手動實現它。) x:Class InitializeComponent 的組合確保您的實現無論何時創建都能得到正確的初始化。代碼隱藏類還為按鈕的 Click 事件實現了一個事件處理程序。當單擊該按鈕時,事件處理程序將通過調用 MessageBox..::.Show 方法顯示一個消息框。

 本文由用戶 quguiliang 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!