效果图

曾几何时,刚接触wp的时候做了一个类似的界面,不过是Rectangle实现的,还是一个个摆的。。囧啊

现在感觉这种应该是用hubtile实现的,Toolkit(http://silverlight.codeplex.com/)中的一个控件,很方便。

引用Microsoft.Phone.Controls.Toolkit.dll 到你项目中,在在XAML内声明命名空间:

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

就可以使用hubtile控件了。

声明方式:(当然也可以用代码动态创建)

<toolkit:HubTile Title="HubTile Title" Message="This is HubTile message!" x:Name="hubTile"/>

关键属性:

  • Title:设置或获取HubTile实例的标题
  • Message:设置或获取HubTile实例的信息,用小字体展示
  • Source:ImageSource类型,设置或获取HubTile实例的图片源
  • DisplayNotification:布尔值,它确定新提示的布尔标识
  • Notification:设置或获取提示的内容,用大字体展示
  • IsFrozen:布尔值,设置或获取那些没有处于Animated的图像的布尔标识
  • GroupTag:设置或获取HubTile组的group tag。当你添加了多个HubTile,这时你可以把它们归为一组。

说明:不设置DisplayNotification值时,Notification的值是不显示的,只有设置DisplayNotification=“True” 后 才会显示Notificationg的值,但是Message的值将不会在显示。

如何实现列表的样式,这样是可以实现的,不断地修改margin,我这么写过,太傻了,,,

<toolkit:HubTile x:Name="hubTile" Title="动态磁贴" Notification="Notification"
DisplayNotification="True" VerticalAlignment="Top" HorizontalAlignment="Left" />
<toolkit:HubTile x:Name="hubTile2" Title="动态磁贴" Notification="提示内容"
Message="This is HubTile message!" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="220,0,0,0"/>

改正,用ListBox订制模版实现:

<ListBox Height="400" HorizontalAlignment="Left" Margin="10,200,0,0"
Name="lbHubTile" VerticalAlignment="Top" Width="450"
ItemsSource="{Binding}">
<!--实现水平方向列表,会自动换行-->
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate> <!--订制ListBoxItem样式-->
<DataTemplate>
<toolkit:HubTile Margin="10" Background="Blue"
Message="{Binding Message}"
Title="{Binding Title}"
Notification="{Binding Notify}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

效果图:

实现的效果,tile在不停的反转,如何停止翻转效果,要靠HubTileService类来实现

实现一个例子,tap事件后tile停止翻转

HubTile tile = sender as HubTile;
if (tile != null)
{
if (tile.IsFrozen)
{
//HubTileService.FreezeGroup("Group") 操作一个HubTile组,参数为GroupTag的值
HubTileService.UnfreezeHubTile(tile);
}
else
{
HubTileService.FreezeHubTile(tile);
} }

通过style,改变hubtile的样式,如大小和翻转的速度,通过blend编辑,改变模版样式

我没有尝试,毕竟原本的设计应该能带给用户更好的使用体验

如何设置设置hubtile固定之前的状态,通过VisualStateManager来管理状态

VisualStateManager.GoToState(hubTile2, "Collapsed", true);
//Collapsed,Flipped,Semiexpanded,Expanded 几种模式

windows phone 网易云阅读hubtile效果实现的更多相关文章

  1. 解决Windows x86网易云音乐不能将音乐下载到SD卡的BUG

    由于我个人最常用的电脑是Surface pro4 256G版本,装了不少生产力空间还挺吃紧的,音乐之类的必然都存单独的SD卡里.用UWP版本的网易云音乐倒是没问题,最近问题来了,UWP版本的网易云音乐 ...

  2. 利用UnblockNeteaseMusic实现网易云破版权,并实现shell可快速访问

    注:本篇包含mac及windows下安装方式详细 mac安装 前提:安装有node环境,可参考 mac下安装nodejs 安装 下载git代码到本地 git clone https://github. ...

  3. windows 定时任务:schtasks,定时关闭网易云音乐

    大部分属于转载和粘贴. 使用命令:schtasks windows 定时任务   使用样例: 每天定时关闭网易云音乐: 每天22:20关闭网易云音乐: schtasks /create /tn &qu ...

  4. 用其他音乐源帮帮网易云,Windows听歌利器

    镜像文章 1.用其他音乐源帮帮网易云,Ubuntu听歌利器 2.用其他音乐源帮帮网易云,Android听歌利器 只剩下Windows端了,一并送上. 1.Windows懒人版 1.1第一种懒人方法 下 ...

  5. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、爆炸菜单、风扇叶片效果等源码

    Android精选源码 复现网易云音乐引导页效果 高仿书旗小说 Flutter版,支持iOS.Android Android Srt和Ass字幕解析器 Material Design ViewPage ...

  6. iOS转场弹窗、网易云音乐动效、圆环取色器、Loading效果等源码

    iOS精选源码 view controller transition and popover (控制器转场和弹窗) UITableView头部悬停+UITableView侧滑嵌套 一行代码集成时间选择 ...

  7. 用RotateDrawable实现网易云音乐唱片机效果

    imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="唱片机" title=""> ...

  8. Android ScrollView滚动实现大众点评、网易云音乐评论悬停效果

    今天听着网易云音乐,写着代码,真是爽翻了. http://blog.csdn.net/linshijun33/article/details/47910833 网易云音乐这个产品亮点应该在评论这一模块 ...

  9. Windows 10 任务栏添加网易云音乐控制按钮

      软件背景: 算是老帖新发,之前有朋友分享过一个很好用的工具,但可能是因为网易云软件更新后,导致控件失灵了,只剩下歌词控件有用了,所以今天用python重新写了一个小工具,发出来分享给大家,附上之前 ...

随机推荐

  1. 用到的IOS知识点小结(1)

    以下内容是在ios6模拟器运行成功的,或者与我自己的开发环境有关系. 1.强制转屏,不过不推荐,是私有方法 //    if ([[UIDevice currentDevice] respondsTo ...

  2. Jenkins(二)

    官网:https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins 我的这篇文章不过简单的依据上文,介绍Jenkins提供了哪些功能.详细大家还是要 ...

  3. HTTP 无法注册 URL http://+:12345/HelloWcfService/。进程不具有此命名空间的访问权限

    运行的时候却发现出如下问题:HTTP 无法注册 URLhttp://+:12345/HelloWcfService/.进程不具有此命名空间的访问权限(有关详细信息,请参见http://go.micro ...

  4. 面试体验:Microsoft 篇(转)

    http://www.cnblogs.com/cathsfz/archive/2012/08/14/microsoft-interview-experience.html 在上一篇<面试体验:G ...

  5. oracle中对LONG列进行查询

    SQL> CREATE TABLE T_LONG (ID NUMBER, LONG_COL LONG); 表已创建. SQL> INSERT INTO T_LONG VALUES (1, ...

  6. Content-type 对照表

    Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式.什么编码读取这个文件,比如用PHP输出图片文件.JSON数 ...

  7. 警告:Pointer is missing a nullability type specifier (__nonnull or __nullable)

    当我们定义某个属性的时候  如果当前使用的编译器版本比较高(6.3+)的话经常会遇到这样一个警告: 而且奇怪的是在某些文件中定义这个属性是没有任何警告的 但是在某些文件中定义同样的属性就会报错: 其实 ...

  8. [转]How to: Execute Oracle Stored Procedures Returning RefCursors

    本文转自:http://www.telerik.com/help/openaccess-orm/openaccess-tasks-oracle-execute-sp-result-set.html I ...

  9. MySQL 에서 root 암호 변경하기

    먼저 터미널이나 SSH를 이용해 접속합니다. 그리고 리눅스 쉘상에서 다음과 같이 입력합니다. [mysqladmin을 이용한 암호변경] 형식) root계정]$mysqladmin -u ...

  10. Unity3D之Ugui 制作弹框

    创建一个UI控件. 这里通过按钮的点击取控制弹框的显示或者隐藏.给按钮Button绑定一个脚本. 将Panel初始化设置为隐藏.就可以实现了. using UnityEngine; using Sys ...