ComboBox 已死,ListPicker 万岁
再见 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
控件的官方版本时更新这篇文章。