介绍 Windows Presentation Foundation
2020-11-22 22:42
标签:style tar ext color width get 介绍 Windows Presentation Foundation WPF 是一个库,为开发用户界面提供了全新的模型,用它创建桌面的应用程序比使用 Windows 窗体更有优势;WPF 还提供了新的基于 XML 的语言 XAML,用于处理大量的窗体布局,而让 F# 专注于开发应用程序的感兴趣部分。 注意 现在有几种 XAML 设计器,这些设计器使用图形化的所见即所得(WYSWIG)工具设计界面,然后,用 F# 为其添加交互性。例如,Mobiform 提供的设计器 Aurora (http://www.mobiform.com/eng/aurora.html), Microsoft 提供的设计器Expression Blend (http://www.microsoft.com/products/expression/en/expression-blend/default.mspx)。 WPF 是 .NET 3.0 的一部分,如果使用Vista,默认情况下已经安装;[ 对于 Windows 7 及以上版本,.NET 3.0 需要手动安装;但是,提供了更高版本的 .NET 中同样包含 WPF ];其他的 Windows 用户需要安装 .NET 3.0 才能访问 WPF,最好的方法是下载 Windows SDK for Windows Server 2008 and .NET Framework 3.5 (http://is.gd/521hd)
。这一节中的示例需要引用以下的 dll:PresentationCore.dll、PresentationFramework.dll 和 WindowsBase.dll。 我们看到的第一个例子演示了如何用 XAML 创建一个简单窗体,然后用 F# 显示出来。示例显示了窗体 XAML 定义有四个控件:两个标签,一个文本框,一个按钮。 清单 8-5 用 XAML 创建的简单窗体 Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> Grid> Grid.ColumnDefinitions> ColumnDefinition Width="64"/> ColumnDefinition Width="128"/> ColumnDefinition Width="128"/> ColumnDefinition Width="128"/> Grid.ColumnDefinitions> Grid.RowDefinitions> RowDefinition Height="24"/> Grid.RowDefinitions> Label Grid.Row="0" Grid.Column="0" >Input:Label> TextBox Name="input" Grid.Column="1"
Text="hello"/> Label Name="output" Grid.Row="0"
Grid.Column="2">Label> Button Name="press" Grid.Column="3" >Press
MeButton> Grid> Window> 使用窗体的 XAML 定义,需要做两件事情:第一,加载窗的定义并显示。但是,如果仅做到这个,不能提供与用户的交互,因此,需要做另一件事情才能使窗体具有交互性;第二,用 F# 为控件添加事件处理程序。在这里,我们为按钮添加事件处理程序,把文本框的内容显示到第二个标签中。函数 createWindow 是一个通用的函数,用于加载 XAML 窗体。用这个函数创建值 window;然后,把这个值传递给窗体的 FindName 方法,找出窗体中的控件,这样,就可以和控件进行交互了;最后,在主(main)函数中创建应用程序(Application)类的实例,并用它显示窗体(见清单
8-6)。 清单 8-6 显示XAML 窗体并为它添加事件处理程序 open System openSystem.Collections.Generic open System.Windows openSystem.Windows.Controls openSystem.Windows.Markup open System.Xml //creates the window and loads the given XAML file into it let createWindow (file:
string) = using (XmlReader.Create(file)) (fun stream
-> (XamlReader.Load(stream) :?>
Window)) //create the window object and add event handler //to the button control let window = let temp = createWindow
" ..\..\Window1.xaml" let press = temp.FindName("press") :?>
Button let textbox = temp.FindName("input") :?>
TextBox let label = temp.FindName("output") :?>
Label press.Click.Add (fun _
-> label.Content
temp //run the application let main() = let app =
new Application() app.Run(window) |> ignore [STAThread
do main()
[ 前面说过,]为了编译这个程序,必须添加引用: PresentationCore.dll、PresentationFramework.dll 和 WindowsBase.dll,它们通常在C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0 目录。这一章的其他例子,都不需要添加引用,因为编译器会自动引用库。图 8-7 是前面示例创建的窗体。
图 8-7 用 XAML 和 F# 创建的窗体
[
原文没有叙述创建项目的过程。
第一步,创建一个 Fsharp 应用程序,把清单 8-6 的代码复制过去;
第二步,在项目中添加新项,选择文本文件,命名很重要,一定要是 Window1.xaml,把清单 8-5 的代码复制过去;
第三步,添加引用 PresentationCore.dll、PresentationFramework.dll 和 WindowsBase.dll,还要加两个System.Xml.dll、System.Xaml.dll;
第四步,如果现在运行,会出错,提示找不到 Window1.xaml,改成" ..\..\Window1.xaml",具体原因未去深究。
现在再运行,应该没有问题了。
]
介绍 Windows Presentation Foundation,搜素材,soscw.com
介绍 Windows Presentation Foundation
标签:style tar ext color width get
原文地址:http://blog.csdn.net/hadstj/article/details/25005039
文章标题:介绍 Windows Presentation Foundation
文章链接:http://soscw.com/index.php/essay/22167.html