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

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

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

 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> 

 

cs: 1  /// <summary>

 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          }

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

转载于:https://www.cnblogs.com/kklldog/archive/2011/09/15/2176806.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值