WP8.1学习系列(第二十章)——添加控件和处理事件

通过使用如按钮、文本框和组合框等控件,你可以创建应用的 UI。 下面将显示如何将控件添加到应用。处理控件时,你通常会使用此模式:

  • 将控件添加到应用 UI。
  • 设置控件的属性,如宽度、高度或前景色。
  • 将代码连接到控件,从而使控制执行任务。

路线图: 本主题与其他主题有何关联?请参阅:

先决条件

我们假定你可以使用 Microsoft Visual Basic、C# 或 C++ 以及 Extensible Application Markup Language (XAML) 创建基本的应用。有关创建第一个应用的说明,请参阅创建你的第一个使用 C# 或 Visual Basic 的 Windows 应用商店应用创建你的第一个使用 C++ 的 Windows 应用商店应用

添加控件

你可以通过多种方式将控件添加到应用:

  • 使用诸如 Blend for Visual Studio 或 Microsoft Visual Studio XAML 设计器的设计工具。
  • 在 Visual Studio XAML 编辑器中将控件添加到 XAML 标记中。
  • 在代码中添加控件。 当应用运行时会看到你在代码中添加的控件,但在 Visual Studio XAML 设计器中看不到。

每个控件的文档都包含解释如何在 XAML 中、在代码中或使用设计工具添加控件的“操作方式”主题。例如,若要添加 Button 控件,请参阅如何添加按钮

此处,我们使用 Visual Studio 作为我们的设计工具,但你可以在 Blend for Visual Studio 中进行该任务并且可以执行更多任务。有关详细信息,请参阅通过使用 XAML 设计器创建 UI

在 Visual Studio 中,当你在应用中添加和操纵控件时,你可以使用许多程序功能,包括“工具箱”、XAML 设计器、XAML 编辑器以及“属性”窗口。

Visual Studio“工具箱”中会显示可在应用中使用的许多控件。要将控件添加到应用,请在“工具箱”中双击该控件。例如,如果双击 TextBox 控件,则会将此 XAML 添加到 XAML 视图中。

XAML

 <TextBox HorizontalAlignment="Left" Text="TextBox" VerticalAlignment="Top"/>

还可以将控件从“工具箱”拖动到 XAML 设计器。

设置控件的名称

若要在代码中使用某个控件,你可以设置该控件的 x:Name 特性并在代码中通过名称来引用该控件。你可以在 Visual Studio“属性”窗口或 XAML 中设置名称。下面是通过使用“属性”窗口顶部的“名称”文本框来更改当前选定控件名称的方法。

命名控件的步骤

  1. 选择要命名的元素。
  2. 在“属性”面板中,在“名称”文本框中键入名称。
  3. 按 Enter 提交名称。

下面是在 XAML 编辑中通过更改 x:Name 特性来更改控件名称的方法。

XAML

<Button x:Name="Button1" Content="Button"/>

设置控件属性

你使用属性来指定控件的外观、内容以及其他属性。使用设计工具添加控件时, Visual Studio 可能会为你设置某些控制大小、位置和内容的属性。通过设置和操纵“设计”视图中的控件,你可以更改某些属性,如WidthHeight 或 Margin。下图显示了“设计”视图中提供的某些大小调整工具。

你可能希望让控件自动调整大小和位置。这种情况下,你可以重置 Visual Studio 为你设置的大小和位置属性。

重置属性的步骤

  1. 在“属性”面板中,单击属性值旁边的属性标记。此时将打开“属性”菜单。
  2. 在“属性”菜单中,单击“重置”。

在 XAML 或代码中,你可以通过“属性”窗口设置控件属性。例如,要更改 Button 的前景色,你可以设置控件的Foreground 属性。下图显示了如何通过使用“属性”窗口中的“颜色选取器”来设置 Foreground 属性。

下面是在“XAML”编辑器中设置 Foreground 属性的方法。注意打开的 Visual Studio IntelliSense 窗口,该窗口可以帮助你处理语法。

下面是设置 Foreground 属性后的 XAML 结果。

XAML

<Button x:Name="Button1" Content="Button"
    HorizontalAlignment="Left" VerticalAlignment="Top"
    Foreground="Beige"/>

下面是在代码中设置 Foreground 属性的方法。

C#

C++

VB

Button1.Foreground = new SolidColorBrush(Windows.UI.Colors.Beige);

创建事件处理程序

每个控件都包含事件,从而使你可以对用户的操作或应用中的其他更改做出响应。例如,Button 控件包含用户单击 Button 时引发的 Click 事件。你可以创建一个调用事件处理程序的方法来处理事件。你可以在 XAML 中或在代码中,将控件的事件与“属性”窗口中的事件处理程序方法相关联。有关事件的详细信息,请参阅事件和路由事件概述

要创建事件处理程序,请选择控件,然后在“属性”窗口的顶部单击“事件”选项卡。“属性”窗口会列出可供该控件使用的所有事件。下面是 Button 的一些事件。

要使用默认名称创建事件处理程序,请在“属性”窗口中双击事件名称胖的文本框。若要使用自定义名称创建事件处理程序,请将你选择的名称输入到文本框中并按 Enter。随即会创建事件处理程序并在代码编辑器中打开代码隐藏文件。该事件处理程序方法具有 2 个参数。第一个参数是 sender,它是对处理程序所附加到的对象的引用。sender 参数为 Object 类型。如果你想在 sender 自身上检查或更改状态,通常需要将 sender 强制转换为更精确的类型。基于你自己的应用设计,你想要一种可将 sender 安全地转换到的类型(基于处理程序附加在何处)。第二个值是事件数据,它通常在签名中显示为 e 参数。

以下代码处理名为 Button1 的 Button 的 Click 事件。当你单击该按钮时,你单击的 Button 的 Foreground 属性将设置为 blue。

C#

C++

VB

private void Button_Click(object sender, RoutedEventArgs e)
{
    Button b = (Button)sender;
    b.Foreground = new SolidColorBrush(Windows.UI.Colors.Blue);
}

你也可以在 XAML 中关联事件处理程序。在 XAML 编辑器中,你可以输入要处理的事件名称。当你开始输入时,Visual Studio 会显示 IntelliSense 窗口。指定事件后,你可以在 IntelliSense 窗口中双击 <New Event Handler>,从而使用默认名称创建新的事件处理程序,或者从列表中选择一个现有的事件处理程序。下面显示的 IntelliSense 窗口可帮助你创建新的事件处理程序。

该示例显示如何在 XAML 中将 Click 事件与名为 Button_Click 的事件处理程序相关联。

XAML

<Button Name="Button1" Content="Button" Click="Button_Click"/>

你也可以将事件与实际代码中的事件处理程序相关联。下面是在代码中关联事件处理程序的方法。

C#

C++

VB

Button1.Click += new RoutedEventHandler(Button_Click);

新控件

如果你使用其他 XAML 平台,你可能会对 Windows 8 的新控件感兴趣。

你可以通过控件列表了解这些新控件和其他控件。

总结

你现在知道了将控件添加到应用、设置控件属性和创建事件处理程序的基础知识。接下来,你将会了解哪些控件可用的更多信息:控件列表按功能分组控件。 通过下载基本控件示例,还可以查看许多 Windows UI 控件。

时间: 2024-10-12 13:43:10

WP8.1学习系列(第二十章)——添加控件和处理事件的相关文章

WP8.1学习系列(第十章)——中心控件Hub设计指南

Windows Phone 应用商店应用中的中心控件指南 在本文中 说明 示例 用法指南 设计指南 相关主题 重要的 API Hub (XAML) HubSection (XAML) 说明 中心控件(在手机上,仅适用于按纵向使用)显示一系列可以来回平移的区域.它是应用的全屏容器和导航模型. 中心(以前称为全景)体验是本机 Windows Phone 外观的一区域.与旨在适合手机屏幕边界的应用不同,中心应用通过使用超出屏幕边界的水平虚拟宽画布提供了一个查看控件.数据和服务的独特方式.在 Windo

【WPF学习】第二十章 内容控件

原文:[WPF学习]第二十章 内容控件 内容控件(content control)是更特殊的控件类型,它们可包含并显示一块内容.从技术角度看,内容控件时可以包含单个嵌套元素的控件.与布局容器不同的是,内容控件只能包含一个子元素,而布局容器主要愿意可以包含任意多个牵头元素. 正如前面所介绍,所有WPF布局容器都继承自抽象类Panel,该类提供了对包含多个元素的支持.类似地,所有内容控件都继承自抽象类ContentControl.下图显示了ContentControl类的层次结构. 图 Conten

WP8.1学习系列(第二十五章)——控件样式

XAML 框架提供许多自定义应用外观的方法.通过样式可以设置控件属性,并重复使用这些设置,以便保持多个控件具有一致的外观. 路线图: 本主题与其他主题有何关联?请参阅: 使用 C# 或 Visual Basic 的 Windows 运行时应用的路线图 使用 C++ 的 Windows 运行时应用的路线图 应用功能大全系列中突出显示的 Windows 应用商店应用 UI 详细信息 本主题包含下列部分: 先决条件 样式基础知识 应用隐式或显式样式 使用基于样式 使用工具轻松处理样式 修改 Windo

WP8.1学习系列(第二十七章)——ListView和GridView入门

快速入门:添加 ListView 和 GridView 控件 (XAML) 在本文中 先决条件 选择 ListView 或 GridView 将项添加到项集合 设置项目源 指定项目的外观 指定视图布局 向视图中添加标题 设置视图的交互模式 摘要和后续步骤 相关主题 重要的 API ListView GridView 你可以在 XAML 中使用 ListView 或 GridView 控件来显示数据集合,如联系信息列表.库中的图像或电子邮件收件箱中的内容. 目标: 了解如何将 ListView 和

WPF学习系列之五(WPF控件)

控件:    1.内容控件------这些控件能够包含嵌套的元素,为它们提供几乎无限的显示能力.内容控件包括Lable,Button 以及ToolTip类. 内容控件是更特殊的控件类型,它们可以包含(并显示)一块内容.从技术角度来讲,内容控件是可以包含单个嵌套元素的控件.与布局容器不同的是内容控件只能包含一个子元素,而布局控件只要愿意可以包含任意多个嵌套元素.              提示:当然,仍然可以在单个内容控件中放置大量内容-----诀窍是使用单个容器,比如,使用StackPanel面

WP8.1学习系列(第二十六章)——控件模板

在本文中 自定义控件模板示例 指定控件的可视结构. 指定控件的可视行为 使用工具轻松处理主题 控件和辅助功能 了解有关控件默认模板的详细信息 控件模板中的主题资源 相关主题 在 XAML 框架中,如果要自定义控件的可视结构和可视行为,请创建控件模板.控件有多个属性,如 Background.Foreground 以及FontFamily,可以设置这些属性以指定控件外观的多个方面.但是可以通过设置这些属性所做的更改有限.可以使用 ControlTemplate 类创建提供其他自定义的模板.在此处,

WP8.1学习系列(第二十三章)——到控件的数据绑定

在本文中 先决条件 将控件绑定到单个项目 将控件绑定到对象的集合 通过使用数据模板显示控件中的项目 添加详细信息视图 转换数据以在控件中显示 相关主题 本主题介绍了如何在使用 C++.C# 或 Visual Basic 的 Windows 应用商店应用中将控件绑定到单个项或将列表控件绑定到项目集合.此外,本主题向你介绍了如何自定义控件项目的显示.如何基于所选内容实现详细信息视图,以及如何转换数据以进行显示.有关更多详细信息,请参阅使用 XAML 进行数据绑定. 路线图: 本主题与其他主题有何关联

WP8.1学习系列(第一章)——添加应用栏

做过android开发的同学们应该都知道有个ActionBar的头部操作栏,而wp也有类似的一个固定在app页面里通常拥有的内部属性,就是应用栏.以前叫做ApplicationBar,现在wp和win统一称AppBar,以后Win10一统手机和桌面相信Api将会高度统一. 废话不多说了,从wp8.1开始,系统提供了AppBar和CommandBar两种控件,CommandBar集成了很多功能,但是是系统指定的模板,如果要高度自定义(如显示进度条,搜索框等等)应用栏就需要使用AppBar了.其中A

&lt;WP8开发学习笔记&gt;修改panorama全景控件的标题的大小

panorama(全景)控件非常具有WinPhone特色,但是那个巨大的标题许多时候会让人觉得违和.怎么修改它呢? 最开始想到的是加一个FontSize,结果毫无影响.╮(╯-╰)╭ <phone:Panorama Title="我的应用程序" FontSize="30"> <phone:Panorama.Background> <ImageBrush ImageSource="/PanoramaApp3;component/