WPF编程入门

本文介绍了WPF编程的入门知识,从开发准备开始,通过一个简单的示例展示XAML的理解和应用。接着深入探讨了控件添加、事件处理机制、BitmapEffect特效、圆角窗口的实现、线性递增画刷等内容,还详细讲解了Content模式、Grid布局及ListView控件的使用。
摘要由CSDN通过智能技术生成

 

    开发准备

    WPF编程是微软推出的打破GUI编程旧模式的创新技术。全称为WINDOWS PRESENTATION FOUNDATION。开发工具建议使用Visual Studio 2008 Team System。语言建议使用C#。WPF可以更方便的开发更漂亮的界面,并且可以比以前更好地将GUI设计和程序逻辑分离开来,使得有条件的公司可以专门培养平面设计人员进行GUI设计(有点类似于与网页美工),而程序员更加关注业务逻辑。
    

    一个简单的示例开始

创建一个WPF工程,工程名为Demo。



请注意图中灰色区域,那是一个XAML文件,如果不用VS2008图形化设计工具,光写XAML文件,我们也可以设计出GUI界面来。理解XAML的一些基本知识很重要,但是还是推荐使用图形化设计工具来工作,毕竟谁都想生活轻松点。
这个工程新建好了以后,就创建了一个窗口应用程序。现在只有一个窗口而已,窗口标题为默认的Window1。下面是运行的结果:

   理解XAML

XAML全称为Extensible Application Markup Language 。XAML可以用来编写WPF,但是也可以做很多其他的事情。每个WPF程序都有一个Application对象,该对象代表了整个应用程序,它总是有一个static Main方法。如何编写一个Application类有多种方法,可以参考 http://www.cnblogs.com/kuku/archive/2007/02/09/645623.html 。但是这篇文章写得较早,最新的VS2008有些变化。所以下面我说明一下,App.xaml内容如下:
<Application x:Class="Demo.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="Window1.xaml">
    <Application.Resources>
        
    </Application.Resources>
</Application>
    
         
   


Application元素的x:Class属性的值为Demo名字空间里面的类App。该类的定义如下:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;

namespace Demo
{
    ///
    /// Interaction logic for App.xaml
    ///
    public partial class App : Application
    {
    }
}

我们并不需要写static Main方法,估计编译器替我们生成了。 App.xaml中的Application元素还有一个属性StartupUri指定了应用程序开始运行时显示的第一个窗口Window1。Window1.xaml文件内容如下:
<Window x:Class="Demo.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
       
    </Grid>
</Window>
   


这个应该比较容易懂,除了指定Demo.Window1为窗口类以外,还指定了Title,Height,Width属性的值。Window1类的代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Demo
{
    ///
    /// Interaction logic for Window1.xaml
    ///
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    }
}
   Window1继承了System.Windows.Window类。InitializeComponent()方法的主要作用是读取Window1.xaml文件中指定的Window元素的属性值。代码如下:
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        public void InitializeComponent() {
            if (_contentLoaded) {
      
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值