wpf 音乐盒制作二(歌词滚动)

这篇博客介绍了如何在WPF音乐盒中实现歌词滚动功能。通过正则表达式解析歌词文件,根据时间戳匹配歌词并滚动显示。同时,优化了界面,将菜单改为TabControl,消除了边框。文章提供了前后台代码示例,展示了歌词加载、匹配和滚动的逻辑。后续计划实现歌词下载功能。
摘要由CSDN通过智能技术生成
 终于把歌词搞定了,先说说逻辑吧,当加载每一首歌的时候都需要用正则表达式去判断歌词,如果存在则进行时间段取词保存,当需要播放或者列表循环,单曲播放等只要是自动播放或者手动点击加载歌曲是就需要去获取列表中的歌词数值,如果为零则无歌词,如果不为零则加载歌词,显示使用的事textblock,需要出现滚动效果的话就需要匹配时间,根据时间戳去获取歌词,然后向上滚动歌词。上图贴码了:
不过今天晚上对以前的进行了优化,把menu改成了tabcontrol,因为nemu不方面各种功能的实现,把tabcontrol的边框消隐,查了好久才查到这个属性。
不多说了看效果: 
 
 
前台界面
  <Grid >
                        <Canvas  Background="Transparent" >
                            <Image Source="/MyMusic;component/Images/jun.jpg" Width="396" VerticalAlignment="Stretch" Height="210" Opacity="0.3" Canvas.Left="-12" Canvas.Top="0">
                               
                            </Image>
                            <TextBlock Canvas.Left="6" Canvas.Top="225" Height="33" Name="textBlock2" Text="" Width="378" Background="Transparent" TextAlignment="Center" FontWeight="Bold" FontStyle="Italic" FontSize="13" Foreground="Red"><TextBlock.OpacityMask><LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"><GradientStop Color="#78DD3E27" Offset="0.041" /><GradientStop Color="Black" Offset="0.976" /></LinearGradientBrush></TextBlock.OpacityMask></TextBlock>
                            <TextBlock Canvas.Left="6" Canvas.Top="273" Height="32" Name="textBlock3" Text="" Width="378" Background="Transparent" FontWeight="Bold" FontStyle="Italic" TextAlignment="Center" FontSize="13"><TextBlock.Foreground><LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"><GradientStop Color="Red" Offset="0.081" /><GradientStop Color="#7FFF0005" Offset="0.878" /></LinearGradientBrush></TextBlock.Foreground></TextBlock>
                            <TextBlock Canvas.Left="6" Canvas.Top="311" Height="45" Name="textBlock4" Text="" Width="378" Background="Transparent" FontSize="15" TextAlignment="Center" FontStyle="Italic" FontWeight="Bold" Foreground="#FFFFD000"></TextBlock>
                            <TextBlock Canvas.Left="6" Canvas.Top="362" Height="38" Name="textBlock5" Text="" Width="378" Background="Transparent" FontSize="13" FontStyle="Italic" FontWeight="Bold" TextAlignment="Center"><TextBlock.Foreground><LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"><GradientStop Color="White" Offset="0" /><GradientStop Color="#FFDA0020" Offset="1" /></LinearGradientBrush></TextBlock.Foreground></TextBlock>
                            <TextBlock Canvas.Left="0" Canvas.Top="406" Height="40" Name="textBlock6" Text="" Width="384" Background="Transparent" FontSize="13" TextAlignment="Center" FontStyle="Italic" FontWeight="Bold"><TextBlock.Foreground><LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"><GradientStop Color="NavajoWhite" Offset="0.016" /><GradientStop Color="Red" Offset="1" /></LinearGradientBrush></TextBlock.Foreground></TextBlock>
                        </Canvas>
                    </Grid>
后台代码
通过获取歌词和对应的时间保存在结果体中
  //读取lrc文件  
        private void ReadLyric(ref finfo f, string filelyric)
        {
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值