面向 Windows 窗体开发人员的 WPF 设计器

适用于 Visual Studio 的 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

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

使用“数据源”窗口。有关更多信息,请参见在 Visual Studio 中将 WPF 控件绑定到数据

可以使用 DesignInstance 标记扩展绑定到数据的设计时实例。 有关更多信息,请参见演练:在设计器中使用 DesignInstance 绑定到数据

如果要绑定到 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 控件。 有关更多信息,请参见如何:向 WPF 项目中添加图像

在工具箱中显示 UserControl

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

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

在窗体中分布控件

使用 StackPanel 元素。

停靠

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

错误提供程序

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

转到定义

在代码隐藏中,右击该符号,并从快捷菜单中选择“转到定义”

若要从 XAML 视图进行搜索,请打开项目中的所有 XAML 文件并使用“查找和替换”窗口。 有关更多信息,请参见“查找和替换”窗口

帮助提供程序

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

Hyperlink

在流内容中使用 Hyperlink 类。

InkCanvas

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

锁定

不支持。

MediaElement

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

助记键

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

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

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

Popup

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

在 XAML 中引用非局部类型

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

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

重命名和重构

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

移除边距

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

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

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

设置 ButtonLabelCheckBoxRadioButton 控件的文本

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

智能标记

不支持。

工具提示

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

Viewbox

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

可视化继承

不支持。

WindowsFormsHost

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

Z 顺序

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

请参见

概念

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

WPF and Silverlight Designer 概述

其他资源

WPF 设计器入门