WPF and Silverlight学习笔记(四):WPF应用程序结构——HelloW

2012-03-26
浏览
导读:按照惯例,创建一个WPF的应用程序,点击按钮,在文本框中显示 Hello WPF World,我们通过此例来分析WPF应用程序的结构。 XAML文件如下: Window xmlns=http://s

按照惯例,创建一个WPF的应用程序,点击按钮,在文本框中显示 “Hello WPF World”,我们通过此例来分析WPF应用程序的结构。

XAML文件如下:

<Window
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation& quot;
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="WPFHelloWorld.MainWindow"
  x:Name="Window"
  Title="WPF Hello World"
  Width="300" Height="130"
  WindowStartupLocation="CenterScreen">
  <StackPanel Margin="10,10,10,10" >
    <TextBox x:Name="txtValue"  Width="200" />
    <Button x:Name="btnOK"
        Content="OK" Width="50"
        Click="btnOK_Click">
      <Button.Margin>
        <Thickness Top="10" />
      </Button.Margin>
    </Button>
  </StackPanel>
</Window>

C#代码如下:

using  System.Windows;

namespace WPFHelloWorld
{
  public partial class MainWindow : Window
  {
    public MainWindow()
    {
      this.InitializeComponent();

      Window.ResizeMode = ResizeMode.NoResize;
    }

    private void btnOK_Click(object sender, RoutedEventArgs  e)
    {
      txtValue.Text = "Hello WPF World!";
    }
  }
}

程序执行效果如图:

分析此项目的代码得到如下几点:

与基于Windows的应用程序 ,Web应用程序类型,WPF的窗体也属于“类型化窗体”,即每一个窗 体均继承于“System.Windows.Window”类

对于WPF控件的属 性,可以在XAML文件中声明设置,也可以在代码中设置(这一点和ASP.Net WebControl的属性设置类似)

在XAML文件Windows声明中有两个命名空间

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presen tation" :将整个 Windows Presentation Foundation (WPF) 命名空间映 射为默认命名空间

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" ; :映射单独的可扩展应用程序标记语言 (XAML) 命名空间,通常将其映射为 x: 前缀

注意这两个命名空间引用的是URI而不是真实存在的URL

对于控件的某些属性,可以直接设置,也可以单独设置。很多 WPF 类型或这些 类型的成员扩展了基本字符串属性处理行为,因此更复杂的对象类型的实例可通 过字符串指定为属性值。在代码级别,此处理是通过指定处理字符串属性值的 CLR 类型转换器来完成的。如Margin。在本例中StackPanel的Margin属性直接以 字符串形式给出,而Button的Margin则是通过CLR映射给出的。

如在代码 中使用某控件对象,则该对象需在XAML声明中以x:Name方式指定,如在代码中不 需访问此控件对象的属性或方法,则不需指定

Window声明中的x:Class指 定了该XAML文件所对应的后台类,事件的处理方法就是写在这个类中的

WPF采用的事件处理与ASP.Net类似,在XAML文件的控件声明位置进行事 件绑定,在后台类中给出事件处理方法的具体代码

Silverlight编程模型、XAML和HTML DOM

Silverlight对象树

Silverlight中如何为浏览器外应用程序实现

Silverlight中如何为浏览器外支持配置应用

使用LINQ和ADO.NET创建Silverlight程序