65.9K
CodeProject 正在变化。 阅读更多。
Home

ComboBox 已死,ListPicker 万岁

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.92/5 (5投票s)

2010年11月22日

CPOL

3分钟阅读

viewsIcon

80777

再见 ComboBox。你好 ListPicker

引言

在本文中,我将介绍 ListPicker 控件。

背景

前几天,我写了一个小的 WP7(Windows Phone 7)应用程序。 这个应用程序不是很出色,所以我不会写关于它的内容。

我想写的是让我感到惊讶的事情。 我对 WP7 的开发还很陌生,所以当我发现手机没有 ComboBox 时,我有点困惑。

我发现这有点奇怪,但另一方面可以理解,ComboBox 可能不太适合像手机这样的设备。 操作系统本身似乎正在使用列表选择器,但该控件似乎仍然存在于 Microsoft 自己的控件库中,并且不可用。 是这样吗?

Using the Code

实际上,WP7 有一个 ComboBox 控件。 尽管无法直接从 Visual Studio 工具箱(或 Windows Phone 7 的 Expression Blend 4 工具箱)中访问此控件,但您可以直接通过 XAML 添加它。 它看起来不是很吸引人,特别是如果您在应用程序中使用其他 Metro 风格的控件。

正如你在上面的图片中看到的,ComboBox 看起来不像你期望的那样。

为了添加它,你只需使用以下代码

<ComboBox Width="200" Height="100">
    <ComboBoxItem Content="aaa" />
    <ComboBoxItem Content="bbb" />
    <ComboBoxItem Content="ccc" />
</ComboBox> 

这是我在上面的图片中使用的代码。

由于感到沮丧,我开始在网上寻找合理的解决方案。 第一个足够好的解决方案是这篇文章,讨论如何将你的 ComboBox 控件设置为 Metro 控件的样式。

研究了这个例子后,我意识到这不可能是真的。 这可能是值得商榷的,但就 UI 和开发而言,Microsoft 始终在提供所有需要的工具方面做得很好。

我决定继续检查,并找到了一个名为 ListPicker 的控件。

ListPicker 是一个控件,它的作用很像 ComboBox。 让我展示给你

好多了。 对吧?

为了做到这一点,你所需要做的就是使用这个 代码

<toolkit:ListPicker>
    <toolkit:ListPickerItem Content="aaa" />
    <toolkit:ListPickerItem Content="bbb" />
    <toolkit:ListPickerItem Content="ccc" />
</toolkit:ListPicker>

这段代码可以让你获得与链接文章中相同的效果,正如你所看到的,它非常简单。

那么什么是工具包? 正如在 官方网站 中提到的

A product of the Microsoft Silverlight team, the Silverlight Toolkit 
adds new functionality for designers, developers, and the community to 
provide an efficient way to help shape product development.  

它是一组工具,在下一个版本的开发工具包中具有很高的集成优先级。

所以你需要做的是下载并安装最新的可用下载(在撰写本文时为 Silverlight for Windows Phone Toolkit - Nov 2010)。

安装完成后,你需要做的是将其添加到你的项目中。 我建议通过 toolbox 添加它,但你也可以通过引用菜单来完成。 无论哪种方式适合你。

如果您决定通过引用菜单添加工具包,则需要在文档的根元素中添加以下行

xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;
	assembly=Microsoft.Phone.Controls.Toolkit"

只需写入 xmlns:toolkit= 并使用智能感知来完成。

现在添加 以上 代码,你就完成了。

编程愉快。

关注点

我建议下载工具包,即使你不打算使用 ListPicker。 它是一组有用的控件,很可能会出现在下一个版本的 Windows Phone 7 开发工具包中。

历史

  • 2010 年 11 月 22 日:首次发布

我希望在 Microsoft 发布 ListPicker 控件的官方版本时更新这篇文章。

© . All rights reserved.