WPF学习笔记(一)

对于废话常常还是要说的,不说怎么知道是废话;所以这一段还是把它罗列出来了,等到人老体衰的时候也好怀念下当时是怎么工作的。

1.1 创建第一个WPF应用程序

1.1.1 Visual Studio 2008建立WPF

首先打开vs2008 ,单击File -> New -> Project见(图 1-1)

     image (图 1-1)

 

 

在弹出的界面中选中WPF Application见(图 1-2)

image (图 1-2)

 

 

修改文件的路径名和项目名称,其中(图1 -3)中的

Name 指project 的名字.

Location 指你文件存放的地址.

Solution Name Solution 可以包含多project ,如果只有一个project,名字可以一样.

Create directory for solution 指为solution建立一个文件夹,而不至于你的文件散乱在外,当然如果你已经制定了文件夹可以忽略此选项,文件夹名字和项目名称一致见(图1-4).

Add to Source Control 指为项目添加如VSS,TFS等版本控制软件,适合多人协作时使用

 

 image (图1-3)

 

 image (图 1-4)

 

 

单击OK,完成项目建设.在vs2008的左边会出现一个建立好的项目,删除其中的两个App.xaml和Window1.xaml以及它们对应的CS文件后,见(图 1-5),一个项目就 出现在我们眼前了.

 

image (图 1-5)

 

选中绿色的Project 项目,点击右键,Add -> NewItem见图(1-6).

 

image (图 1-6)

 

 

选中Templates 中的 Class,修改Name中的名称.见(图 1-7)

 image (图 1-7)

 

 

单击Add后项目变为添加了一个c#文件的项目(HelloWorld.cs).就这样项目就建立好了.见(图 1-8)

 image (图 1-8)

 

 

1.1.1 后端代码部分

双击HelloWorld .cs 文件打开后可以见到一个HelloWorld的一个类,是不是感觉孤孤单单,那让我们把它一点点充实起来吧.

 

public class HelloWorld:Window 




 

因为我们是在Window 开发环境下进行开发所以我们选择的基类是Window,如若是Web的话就要选择Page了,注意不要忘记加引用, using System.Windows;不过vs2005之后就有智能提示,这让我们的工作轻松了很多.

学过C语言的朋友都知道程序都有入口Main,WPF里默认会自动生成一个,所在目录为 obj\Debug\App.g.cs,但是你想要自己定义一个函数入口,比如需要定义参数,或是在主窗体启动前先弹出登入对话框的话,那就需要自己写一个.

 

public class HelloWorld : Window
{

    [STAThread]

    
public static void Main()
    {

        Application app 
= new Application();

        app.Run(
new HelloWorld());

    }

    
public HelloWorld()
    {

    }

}

 

其中注意Main是static函数,而且它的头上是有个[STAThread]来标注它是开始线程,我们的程序Application,要启动(run)一个函数,就要把那个类给实例化出来.

不过我们还要做个动作,刚才不是说了么,WPF 有个默认的Main函数,那怎么让系统启动我们自己写的程序呢.还是选中项目的属性(Properites)见(图 1-9),然后再Application中的Startup object里选中我们刚才写的那个Main函数.见(图1-10)

 

 image (图1-9)

 

image (图1-10)

 

 

点击Debugimage 按钮或是F5就可以运行程序了.不过是不是感觉太空空了呢.见图(1-11)

 

image  (图 1-11)

 

 

那让我们填充一些东西上去吧.

 

public HelloWorld() 



    Button button 
= new Button(); 

    button.Name 
= "firstButton"

    button.Content 
= "I'm a button"

    
this.Content = button; 

}

 

 代码看上去没有什么特别,不过其中Button的Content属性容易让人联想到Winform的Text属性,实际上在WPF中Content是一个相当于容器的概念,Content所赋予的 I’m a button 这段文字其实是一个TextBlock 的代码封装,如同:

 

TextBlock text = new TextBlock(); 

text.Text 
= "I'm a button"

button.Content 
= text; 

 

同理Window 也有这么个Content的容器,我们才能如此舒舒服服的把Button控件放进去。

运行结果如(图1-12)所示

 

image (图1-12)

原文地址:https://www.cnblogs.com/Curry/p/1322642.html