玩转Coding4Fun的Windows Phone 7控件
看看Coding4Fun新推出的Windows Phone 7控件。
引言
我坚信应该有一个业余项目,您可能从我的“使用Silverlight构建个人网页”文章的第一句话中可以看出来。我目前的一个业余项目是重新制作我在应用商店中的当前WP7应用程序。我一开始就知道我需要一个“加载”动画和一个更好的“关于”框。在我开始自己开发后,我注意到Coding4Fun提供了一组很棒的WP7控件,并决定在我的新应用程序中使用它们。在继续之前,它们是免费和开源的。
该项目的完整源代码可以从这里下载。
获取资源
下载后,将其解压到文件夹中,您将拥有 4 个 DLL 文件。 它们列在下面
现在创建一个 Windows Phone 7 项目,并通过右键单击引用文件夹并单击“添加引用”来添加对 DLL 的引用。
ProgressOverlay 动画
添加引用后,我们就可以开始了。我需要一个ProgressOverlay
动画或“加载屏幕”,以便在我的 RSS 源下载时显示。
基本上,您只需要将以下命名空间添加到您想要控件所在的任何页面
xmlns:Controls="clr-namespace:Coding4Fun.Phone.Controls;
assembly=Coding4Fun.Phone.Controls"
<Controls:ProgressOverlay Name="progressOverlay" >
<Controls:ProgressOverlay.Content>
<TextBlock>Loading</TextBlock>
</Controls:ProgressOverlay.Content>
</Controls:ProgressOverlay>
好了,您现在有了一个很棒的加载屏幕。当然,在ProgressOverlay
内部,您可能希望添加一个Visibility
属性,以便在使用 MVVM 或类似模式加载数据后将其关闭。
一个更好的“关于框”
接下来,我需要一个漂亮干净的“关于框”,它看起来不错而且功能强大。 意思是,如果他们点击我的 Twitter 名称、网站或电子邮件,则启动相应的任务。
同样,这只需要几行代码
var p = new AboutPrompt();
p.VersionNumber = "2.0";
p.Show("Michael Crump", "@mbcrump",
"michael@michaelcrump.net", @"http://michaelcrump.net");
一个漂亮干净的“关于”框,只需几行代码! 我非常赞成我不必自己编写的代码。
InputBox
它还带有一个非常棒的 InputPrompt,用于从用户那里获取信息
这段代码也很简单
InputPrompt input = new InputPrompt();
input.Completed += (s, e) =>
{
MessageBox.Show(e.Result.ToString());
};
input.Title = "Input Box";
input.Message = "What does a \"Developer Large\" T-Shirt Mean? ";
input.Show();
PhoneHelper 类
我还很喜欢PhoneHelper
,它允许您非常轻松地从WMAppManifest文件中获取数据。
例如,如果我想从WMAppManifest文件中获取版本信息。
我可以写一行代码来获取它。
PhoneHelper.GetAppAttribute("Version")
当然,您需要确保添加以下using
语句
using Coding4Fun.Phone.Controls.Data;
如果没有一组很棒的转换器,你就不能拥有所有这些很酷的控件。 包含的BooleanToVisibility
转换器会将布尔值与Visibility
值相互转换。 当使用类似CheckBox
来显示TextBox
(选中时)时,这非常棒。 请参见下面的示例
代码如下
<phone:PhoneApplicationPage.Resources>
<Converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</phone:PhoneApplicationPage.Resources>
<CheckBox x:Name="checkBox"/>
<TextBlock Text="Display Text" Visibility="{Binding ElementName=checkBox,
Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter} }"/>
这还不是包含的所有好东西。 它们还提供了一个RoundedButton
、TimePicker
和其他几个转换器。 文档很棒,如果您需要任何这些功能,我建议您尝试一下。 顺便说一句,感谢Brian Peek在 Coding4Fun 上所做的出色工作!