前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >豆瓣电台WP7客户端 开发记录7

豆瓣电台WP7客户端 开发记录7

作者头像
MJ.Zhou
发布2022-05-07 16:07:44
3560
发布2022-05-07 16:07:44
举报
文章被收录于专栏:.NET开发那点事.NET开发那点事

由于歌曲名称可能超过屏幕宽度而显示不下,所以当歌曲名称长度大于屏幕宽度的时候滚动显示。

 这里主要用storyboard来完成,主要是silverlight的知识了。

代码语言:javascript
复制
  1  <Canvas>
2                     <Canvas.Resources>
 3                         <Storyboard x:Name="sb">
 4                             <DoubleAnimation x:Name="animation"
 5                             Storyboard.TargetProperty="(Canvas.Left)"
 6                             Storyboard.TargetName="SongName"
 7                             Duration="0:0:9"
 8                             RepeatBehavior="Forever" />
 9                         </Storyboard>
10                     </Canvas.Resources>
11                 <TextBlock  x:Name="SongName" FontSize="24"   HorizontalAlignment="Center" Margin="0,15,0,0" />
12  </Canvas> 
代码语言:javascript
复制
cs: 1  /// <summary>
代码语言:javascript
复制
2         /// 歌曲名称滚动
 3         /// </summary>
 4         private void SongNameMarquee()
 5         {
 6             this.sb.Stop();
 7             double sysWidth = System.Windows.Application.Current.Host.Content.ActualWidth;//屏幕宽度
 8             if (sysWidth <= this.SongName.ActualWidth)
 9             {
10                 animation.From = sysWidth;
11                 animation.To = -this.SongName.ActualWidth - (sysWidth - 360) / 2;//360为Canvas宽度
12                 this.sb.Begin();
13             }
14             else
15             {//canvas居中
16                 this.SongName.SetValue(Canvas.LeftProperty, 180-this.SongName.ActualWidth/2);
17             }
18 
19         }

 主要是计算几个点麻烦点 其他没什么。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档