WPF Hello World 之 WPF窗口创建的三种方法

2017-05-19 11:11:03来源:CSDN作者:Zzitai人点击

写在前面:
以前一直是写Win form 程序做东西的,不过渐渐发现Win form做的界面效果不是很好。决定学习WPF,拓宽一下技术路线。视频原址:猎豹网校

第一章:WPF窗口创建

首先了解一下WPC程序的基本框架:

  1. 每个WPF程序都包括一个Application
    类代表着一个WPF应用程序,其次包含多个Window类,作为这个程序拥有的多个窗口,其中有一个是主窗口

  2. 每一窗口都拥有若干个Control对象,声明过程为:1,声明一个私有Control对象(如Button)。2,在窗口的类的构造函数中调用的InitializeComponent函数里面初始化Control的属性。

  3. 在程序的Main函数里面声明一个Application类的,指定Application的主窗口,再调用Application.Run函数即可运行起一个WPF程序

是WPF窗口创建的三种方法
一、使用纯C#语言创建WPF窗口窗口
1. Application类声明、指定主窗口及运行

 class Program : Application    {        [STAThread()]        static void Main()        {            Program app = new Program();            app.MainWindow = new Window1();            app.MainWindow.ShowDialog();        }}
  1. 手动声明窗口类及控件初始化

    class Window1 : Window{    private Button button1; //声明私有控件    public Window1()        //构造函数    {        InitializeComponent();    }    private void InitializeComponent()  //控件属性初始化    {        //设置窗体参数        this.Width = 600;        this.Height = 400;        this.Left = this.Top = 100;        this.Title = "Code-only Window";        //创建面板对象        DockPanel panel = new DockPanel();        //创建面板对象        button1 = new Button();        button1.Content = "Please click me";        button1.Margin = new Thickness(100,100,100,100);        button1.Click +=button1_Click;          //委托,指定点击事件发生的回调函数        IAddChild container = panel;        container.AddChild(button1);        container = this;        container.AddChild(panel);    }    private void button1_Click(object sender, RoutedEventArgs e) //控件的响应函数    {        button1.Content = "Thank you~";    }}

最终效果
这里写图片描述

二、使用XAM L创建WPF窗口
第二种方法与第一种方法类似,只是从InitializeComponent函数利用C#代码初始化控件属性改为从.xmal文件中加载控件信息,并初始化控件。
1. 首先创建Window1.xmal文件内容如下:

这里写图片描述

2 窗口的构造函数
public partial class MainWindow : Window
{
private Button mybutton; //私有控件

    public MainWindow()    {        InitializeComponent();    }    public MainWindow(string xmalFile)    {        //设置窗体参数        this.Width = 600;        this.Height = 400;        this.Left = this.Top = 100;        this.Title = "Dynamically Loaded XMAL Window";        //从一个XMAL文件类获取XMAL内容        DependencyObject root = new DependencyObject();        using (FileStream fs = new FileStream(xmalFile, FileMode.Open))        {            root = (DependencyObject)XamlReader.Load(fs);        }        this.Content = root;        //从XMAL内容里面搜索button1 属性信息并赋值给mybutton        mybutton =(Button)LogicalTreeHelper.FindLogicalNode(root,"button1");        mybutton.Click += mybutton_Click;    }    private void mybutton_Click(object sender, RoutedEventArgs  e))    {        mybutton.Content = "Thank you.";    }}

最终效果

这里写图片描述

三、是有可视化界面进行窗口创建
可视化界面即是我们正常新建窗口,通过工具箱拖拽控件配合Xmal文件共同设计布局。可视化界面在正常开发中是最常见的一种方式,可以屏蔽掉底层机制,直接进行快速开发。

最后:
通过对WPF的三种创建窗口的方式的学习,是我初步的了解了WPF运行运行机制,以及它和Winform的一些区别与共同之处。接下来就是熟悉WPF控件的使用,熟悉Xmal文档的使用。

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台