用对象生成按钮

此页适用于 WPF 和 Silverlight 2

在 Microsoft Expression Blend 中,可以使用“生成按钮”功能,用美工板上的任意对象(如图像或形状)生成按钮。“生成按钮”工具将对象封装到一个样式资源中,使其能够应用于其他任何按钮对象。

Cc295271.alert_tip(zh-cn,Expression.10).gif提示:

Expression Blend 中的对象 是能够放到美工板上的任何内容,例如版式面板、形状、文本控件、图像、按钮、控件模板或其他任何用户界面 (UI) 设计元素。将 UI 元素放到美工板上,便会在应用程序中创建该元素的一个对象实例。

通过椭圆创建按钮

  1. 如果还没有打开项目,请打开项目或创建新项目。有关详细信息,请参阅创建新的文档或项目

  2. 在美工板上,使用“工具箱”中的“椭圆形”Cc295271.d7a04618-e35a-44f9-b78c-1f22e38016c1(zh-cn,Expression.10).png 工具绘制一个圆。若要使椭圆更显突出,可以在“属性”面板的“画笔”下更改其属性,以更改其外观。有关详细信息,请参阅向对象的填充或笔划应用画笔

  3. 在“交互”面板的“对象和时间线”下选定该椭圆后,单击“工具”菜单上的“生成按钮”可将该椭圆转换成按钮。此时将打开“创建样式资源”对话框。

  4. 在“资源名(关键字)”下,选中第一个单选按钮(默认按钮),然后输入用于标识该按钮样式的名称。或者,可以选择“全部应用”选项,将该样式应用于美工板上尚未按名称引用样式的所有按钮。

  5. 在“定义位置”下,单击表明所需按钮样式定义范围的选项。单击“应用程序”,使按钮样式能够供应用程序中的任何文档使用。单击“本文档(Window: Window)”使按钮样式只能供当前文档使用。若要在应用程序的资源字典中定义按钮样式,请单击“资源字典”。

  6. 单击“确定”以退出“创建样式资源”对话框,并创建该按钮样式。

    请注意,在“对象和时间线”下,椭圆对象将转换为一个按钮对象,其样式也将设置为新的按钮样式。

    此外,该按钮样式将列在“资源”选项卡上定义该样式的节点中(例如,在“Window”节点中)。

    显示在 Expression Blend 的“资源”选项卡中的新按钮样式

    Cc295271.53d9464b-bf8b-4dcb-90c0-6fb85b0df530(zh-cn,Expression.10).png

Cc295271.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

修改按钮的样式

  1. 若要修改刚才创建的按钮样式,请在“对象和时间线”下右键单击新的按钮对象,指向“编辑控件部件(模板)”,然后单击“编辑模板”。

    美工板将切换到控件模板的编辑范围。

    Cc295271.alert_tip(zh-cn,Expression.10).gif提示:

    可以通过多种方式进入控件模板的编辑范围。例如,可以在“资源”选项卡中查看按钮样式,然后单击资源名称旁边的“编辑资源”按钮。此时会进入样式的编辑范围,然后可以通过以下方式转到控件模板的编辑范围:在“对象和时间线”下右键单击样式对象,指向“编辑控件部件(模板)”,然后单击“编辑模板”。

    若要退出控件模板的编辑范围,请单击“对象和时间线”下的“范围上移”Cc295271.55844eb3-ed98-4f20-aa66-a6f5b23eeb2b(zh-cn,Expression.10).png 按钮。如果之前是从样式的编辑范围进入到控件模板的编辑范围的,此时将返回到样式的编辑范围。再次单击“范围上移”以返回到文档的编辑模式。

    Cc295271.alert_tip(zh-cn,Expression.10).gif提示:

    “生成按钮”工具将原始对象(椭圆)封装到包含控件模板的样式资源中。样式定义了对应用该样式的对象(在本例中为按钮对象)设置的属性。控件模板定义了该对象的状态、结构和外观。

  2. 在控件模板中,有一个包含原始对象(椭圆)的“网格”面板和一个显示该按钮对象的内容的“ContentPresenter”元素。通过将对象放入“网格”面板中,可快速添加和排列其他元素。

    新按钮样式的控件模板的结构

    Cc295271.d16a098c-d0c2-4f72-8e2f-19ce6469c4f8(zh-cn,Expression.10).png

    通过查看资源的可扩展应用程序标记语言 (XAML),即可了解样式和控件模板的关联方式。例如,按钮样式的结构可能如下所示:

      <Window.Resources>
        <Style x:Key="ButtonStyle1" ...>
          <Setter Property="Template">
            <Setter.Value>
              <ControlTemplate TargetType="{x:Type Button}">
                <Grid>
                  <Ellipse>
                    ...
                  </Ellipse>
                  <ContentPresenter .../>
                </Grid>
                <ControlTemplate.Triggers>
                  ...
                </ControlTemplate.Triggers>
              </ControlTemplate>
            </Setter.Value>
          </Setter>
        </Style>
      </Window.Resources>
    
  3. 在“交互”面板的“触发器”下,根据需要定义按钮的状态。例如,单击“IsMouseOver = True”,为用户鼠标经过按钮上时的状态激活触发器记录。在“对象和时间线”下选择该椭圆,然后在“属性”面板的“外观”下,将椭圆的“Fill”属性改为不同的颜色。请注意,“ellipse.Fill”的新属性更改已添加到“触发器”的“活动时的属性”下,如下图所示。

    Cc295271.alert_note(zh-cn,Expression.10).gif说明:

    可能需要调整“触发器”窗格的大小,才能看到“活动时的属性”部分。若要调整其大小,请单击并拖动该窗格的边框以及该窗格内的边框。

    更改将指针移动到按钮上时椭圆的“Fill”属性后的“触发器”面板

    Cc295271.6be5825d-f291-410b-bc75-423fee8f5d00(zh-cn,Expression.10).png

  4. 还可以向按钮添加动画。例如,在“触发器”面板中,单击“IsPressed = True”,为用户单击按钮时的状态激活触发器记录。仍然在“对象和时间线”下选定该椭圆,在按住 Shift 键和 Alt 键的同时拖动该椭圆的一个转角。(Shift+Alt 组合键可保持对象的中心点。)

    或者,可以创建新的 Storyboard 并通过“IsPressed”事件的“事件触发器”触发该 Storyboard 来添加更复杂的动画。有关详细信息,请参阅触发器与用户交互性

  5. 根据需要定义完按钮的状态后,单击“对象和时间线”下的“范围上移”Cc295271.55844eb3-ed98-4f20-aa66-a6f5b23eeb2b(zh-cn,Expression.10).png 按钮,以返回到文档的编辑范围。

  6. 若要测试状态,请单击“项目”菜单上的“测试项目”(或者按 F5),然后查看按钮状态能否正常工作。例如,将指针移到按钮上时,填充颜色应改变。

Cc295271.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

向按钮应用按钮样式

  1. 确保处于所需的编辑范围中。可以在任何范围中向按钮应用样式,其中包括控件模板的范围。

  2. 在美工板上,使用“工具箱”中的“Button”Cc295271.05df1779-a68f-436b-b834-a91b7995a3ec(zh-cn,Expression.10).png 控件绘制一个按钮。

  3. 在“对象和时间线”下右键单击新的按钮对象,依次指向“编辑控件部件(模板)”和“应用资源”,然后从列表中选择所需的按钮样式。

    也可以使用“对象”菜单上的“编辑样式”和“编辑控件部件(模板)”命令来应用样式资源。

    通过右键单击方式向按钮对象应用按钮样式

    Cc295271.dc12debc-7711-47d9-84ce-10322a384397(zh-cn,Expression.10).png

Cc295271.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

删除或更改按钮的样式

  • 由于按钮样式是一种资源,因此可以像其他任何资源一样加以处理。有关如何删除或改变样式资源的信息,请参阅资源中的“操作方法”主题。

Cc295271.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

另请参见

概念

从现有对象创建控件