为 Windows 窗体开发人员提供的 WPF 设计器

更新:2007 年 11 月

Visual Studio Windows Presentation Foundation (WPF) 设计器与 Windows 窗体设计器有许多相似之处,但也在很多方面存在不同。本主题介绍其中的一些不同点,并说明如何使用 WPF 设计器完成 Windows 窗体设计器中用户所熟悉的任务。

着重使用 XAML

Windows 窗体设计器与 WPF 设计器之间最明显的差异是拆分视图。通过拆分视图,您可以同时查看设计图面和 XAML 标记。WPF 设计器 着重使用 XAML 视图,并为应用程序的 XAML 提供全面的编辑体验,包括 IntelliSense。您可以使用 XAML 视图完成 Windows 窗体设计器中所熟悉的许多任务。拆分视图通过显示所做编辑在 XAML 视图中的效果来提供即时的反馈。有关拆分视图的更多信息,请参见拆分视图:同时查看 WPF 设计图面和 XAML

还可以结合使用 Visual Studio 和 Expression Blend 来完成 WPF 设计器不支持的任务。有关更多信息,请参见与 Expression Blend 的协作

WPF 设计器的改进

WPF 设计器中有 Windows 窗体设计器所没有的多种改进。这些改进包括:

  • 边距线和边距短线:每个控件周围的边距线表示已为该控件设置了边距。边距短线表示还没有为该控件边缘设置边距。

  • “缩放”控件:“缩放”控件显示在“设计”视图的左上角,它允许开发人员在设计图面上进行放大或缩小操作以执行精确的调整。

  • 对齐线:尽管对齐线在 WPF 设计器和 Windows 窗体设计器中都显示,但在 WPF 设计器中对齐线还显示准确值。除了显示控件对齐状况外,对齐线还显示基于文本的控件的文本对齐状况。有关更多信息,请参见 如何:对齐文本基线和边距

Windows 窗体设计器任务和 WPF 设计器等效任务

下表有助于帮助了解如何在 WPF 设计器中完成各种任务。

Windows 窗体设计器中的任务

WPF 设计器中的等效任务

绝对布局

Canvas 类用作根元素。

在“属性”窗口中按字母顺序排序

若要查找属性,请使用“属性”窗口中的“搜索”框。

若要浏览属性,请在 XAML 视图或代码编辑器中使用 IntelliSense。也可以使用对象浏览器。

锚定

使用设计视图中的 Grid 和锚定功能设置锚定目标。

动画

使用 Expression Blend。

应用程序图标

在应用程序的 Window 主类上设置 Icon 属性。

指定 Tab 键顺序

选择每个控件,并在 XAML 视图或“属性”窗口中设置对应的 TabIndex 属性。默认 Tab 键顺序就是控件在父容器中的显示顺序。

组件和组件栏

非可视化组件不显示在 WPF 设计器工具箱中。使用 XAML 视图和命名空间映射引用资源和非局部类型。有关更多信息,请参见 如何:将命名空间导入 XAML

“数据源”窗口和数据绑定

在本版本中,WPF 设计器不支持“数据源”窗口。使用 XAML 视图定义数据源和数据绑定。

如果要绑定到 XML 或对象,还可以使用 Expression Blend 来定义数据源和数据绑定。将自动生成的 XAML 复制并粘贴到 WPF 设计器中的 XAML 视图。还可以在 Expression Blend 中打开 Visual Studio 项目并直接创建资源。

声明和附加事件处理程序

对于默认事件处理程序,在设计视图中双击控件。对于其他事件,在 XAML 视图中使用 IntelliSense 并从下拉列表中选择所需的事件。有关更多信息,请参见 如何:创建简单的事件处理程序

设计菜单

使用 XAML 视图或使用 Items 集合“属性”窗口中的“集合编辑器”设置每一项的 Header 属性。

定义画笔和颜色

对于复杂画笔,如渐变画笔,使用 Expression Blend。将自动生成的 XAML 复制并粘贴到 WPF 设计器中的 XAML 视图。还可以在 Expression Blend 中打开 Visual Studio 项目并直接创建资源。

删除网格线

使用 XAML 视图可以移除相关的行定义或列定义,然后修复源自 Grid 内部的受影响子控件的 Grid.ColumnGrid.Row 赋值。

显示图像

将图像添加到项目中,并将其生成操作设置为“资源”。将 Image 控件放在设计图面上,并在“属性”窗口中设置其 Source 属性。有关更多信息,请参见 如何:为 Image 控件分配图像。还可以使用包 URI 语法来设置源图像。有关更多信息,请参见 Windows Presentation Foundation 中的 Pack URI

在工具箱中显示 UserControl

向用户控件的程序集中添加项目引用并使用 XAML 视图中的 IntelliSense 指定 xmlns 属性。

还可以使用“选择工具箱项”对话框并浏览到包含您的控件的程序集,但有一些限制。有关更多信息,请参见 “选择工具箱项”对话框 ->“WPF 组件”选项卡

在窗体中分布控件

使用 StackPanel 元素。

停靠

对多个控件使用 DockPanel 元素。还可以使用 Grid 并使用网格线对齐将控件与网格单元格边界对齐。

错误提供程序

无可视化设计时。在 XAML 视图中使用 Validation 类。有关更多信息,请参见 如何:实现绑定验证

Expander

无可视化设计时。使用 XAML 视图。

Frame

无可视化设计时。使用 XAML 视图。

转到定义

打开项目中的所有 XAML 文件并使用“查找和替换”窗口。有关更多信息,请参见 “查找和替换”窗口

帮助提供程序

无可视化设计时。使用 XAML 视图。

超链接

在流内容中使用 Hyperlink 类。

InkCanvas

无可视化设计时。使用 XAML 视图。

锁定

不支持。

MediaElement

无可视化设计时。使用 XAML 视图。

助记键

在助记符的前面添加下划线字符“_”,而不是 and 符号“&”。

“属性”窗口中的“对象选择器”下拉列表

在“文档大纲”窗口、标记导航器或设计视图中选择对象。要显示“文档大纲”窗口,请打开“视图”菜单,指向“其他窗口”,并选择“文档大纲”。

Popup

无可视化设计时。使用 XAML 视图。

在 XAML 中引用非局部类型

添加项目引用并使用 XAML 视图中的 IntelliSense 设置 xmlns 属性。有关更多信息,请参见 如何:将命名空间导入 XAML

说明:

WPF 设计器尝试根据 xmlns 属性后的命名空间别名进行匹配,而不是根据使用 clr-namespace 的完整语法进行匹配。

重命名和重构

打开项目中的所有 XAML 文件并使用“查找和替换”窗口。有关更多信息,请参见 “查找和替换”窗口

移除边距

在设计视图中,选择将移除边距的所有元素。在“属性”窗口中,为 Margin 属性输入 0。

放入控件后调整窗体的大小

因为调整窗口的大小可能会调整内容的大小,所以应按照如下过程进行操作。选择所有元素,然后剪切。接下来,调整窗口大小,然后粘贴。

设置 ButtonLabelCheckBoxRadioButton 控件的文本

在“属性”窗口中,设置 Content 属性。另外,还可以在 XAML 视图中设置文本。

以可视方式设置复杂属性,如字体属性、资源、画笔和颜色

使用 XAML 视图或 Expression Blend。

智能标记

不支持。

TabControl

无可视化设计时。使用 XAML 视图。

工具提示

无可视化设计时。在 XAML 视图中使用 ToolTip 类。

Viewbox

无可视化设计时。使用 XAML 视图。

可视化继承

不支持。

WindowsFormsHost

无可视化设计时。使用 XAML 视图。

Z 顺序

在 XAML 视图中选择和移动元素标记,或在设计视图的上下文菜单中选择“顺序”。请使用“文档大纲”窗口确认元素的 Z 顺序。

请参见

概念

Windows 窗体控件和等效的 WPF 控件

参考

WPF 设计器的用户界面参考

其他资源

WPF 设计器入门