博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
silverlight 乐动魔方 实战五 .
阅读量:6841 次
发布时间:2019-06-26

本文共 7870 字,大约阅读时间需要 26 分钟。

上次我们已经转换到···Music.xaml了~·

首先,要敲一个相册播放,其实,应该感谢一本··silverlight入门书 《silverlight银光志》,以下就是这书里面的例子再二次开发的。

1、敲上相册源码,都说是二次开发,是和原来的版本有点不一样额~,定义样式

2、接着再布局,并且画上相册框,下一页和上一页按钮等

布局完之后,你就会发现4个框框,和三个按钮。

3、布局完之后,按常理,应该会进入Music.cs编辑他的后台的。不过,在之前,要加载图片需要知道,图片路径,这些信息,我保存在XML里面,所以·这之前,先写一个类库专门读取XML的。

4、在此建两个类分别是Reader和MusicHitValue

这个MusicHitValue是后来玩游戏用的,暂时可以不用理,可建··可不建吧。

 

5、进入MusicValue

public class MusicValue    {        ///         /// 音乐名        ///         public string MusicName { get; set; }        ///         /// 音乐路径        ///         public string MusicPath { get; set; }        ///         /// 音乐背景图        ///         public string MusicImg { get; set; }        ///         /// 音乐节奏        ///         public string MusicHit { get; set; }    }

6、进入Reader

///         /// 获取音乐对象        ///         ///         /// 
public static List
GetValues(string url) { List
LValue = new List
(); XDocument XD = XDocument.Load(url); var Values = from x in XD.Element("data").Elements("Music") select new { MusicName = x.Element("MusicName").Value, MusicPath = x.Element("MusicPath").Value, MusicImg = x.Element("MusicImg").Value, MusicHit = x.Element("MusicHit").Value }; MusicValue Litem = null; foreach (var item in Values) { Litem = new MusicValue(); Litem.MusicName = item.MusicName; Litem.MusicPath = item.MusicPath; Litem.MusicImg = item.MusicImg; Litem.MusicHit = item.MusicHit; LValue.Add(Litem); } return LValue; }

这个涉及到部分LINQ语法和lambda表达式,具体要google一下··这方面的资料额··查看MSDN搜索lambda 表达式 [LINQ] 就会有相关的介绍。

 好了,XML就写好了。 接着我们就读取这信息。由于这些信息是每个页面都需要用到的, 这些我们应该想到的是···做为全局变量来使用,这全局应该放到哪呢?

其实,通常都会放在APP里面,不过,我们之前已经创建了类似全局的类?还记得吗?

 

没错,Common,那我们就放在这里吧。

 

7、进入Comon

///         /// 全局音乐对象        ///         public static List
_MusicValue = new List
();

敲到这类里面。回到Music

 

8、进入Music

public Music()        {            InitializeComponent();            this.Loaded += new RoutedEventHandler(OpenPage3D_Loaded);            //读取音乐信息            Common._MusicValue = Reader.GetValues("MusicSet.xml");        }

9、新增一个MusicSet.xml鸟

编辑XML

View Code
Spark 光芒-宝儿(LV_6)
Music/Spark光芒.mp3
Image/PicMusic/Spark光芒.jpg
MusicHit/Spark光芒.xml
One Love-淑熙(LV_3)
Music/OneLove.mp3
Image/PicMusic/OneLove.jpg
MusicHit/OneLove.xml
V3(LV_7)
Music/V3.mp3
Image/PicMusic/V3.jpg
MusicHit/V3.xml
信者得爱-郑秀文(LV_6)
Music/信者得爱.mp3
Image/PicMusic/信者得爱.jpg
MusicHit/信者得爱.xml
可多不可少-狄易达(LV_2)
Music/可多不可少.mp3
Image/PicMusic/可多不可少.jpg
MusicHit/可多不可少.xml
A.I.N.Y.-邓紫棋(LV_1)
Music/A.I.N.Y.mp3
Image/PicMusic/A.I.N.Y.jpg
MusicHit/A.I.N.Y.xml
VALENTI-宝儿(LV_5)
Music/VALENTI.mp3
Image/PicMusic/VALENTI.jpg
MusicHit/VALENTI.xml
雨过之后-刘心(LV_2)
Music/雨过之后.mp3
Image/PicMusic/雨过之后.jpg
MusicHit/雨过之后.xml
I W Be Loving U-陈柏宇(LV_2)
Music/I Will Be Loving You.mp3
Image/PicMusic/I Will Be Loving You.jpg
MusicHit/I Will Be Loving You.xml
Good To Be Bad-邓紫棋(LV_5)
Music/Good To Be Bad.mp3
Image/PicMusic/Good To Be Bad.jpg
MusicHit/Good To Be Bad.xml
Deadline-张敬轩(LV_6)
Music/Deadline.mp3
Image/PicMusic/Deadline.jpg
MusicHit/Deadline.xml
joy leona-lewis(LV_3)
Music/joy.mp3
Image/PicMusic/joy.jpg
MusicHit/joy.xml
NeT'enVaPas-S Luna(LV_2)
Music/Ne T'en Va Pas.mp3
Image/PicMusic/Ne T'en Va Pas.jpg
MusicHit/Ne T'en Va Pas.xml
Wonderland-24味(LV_5)
Music/Wonderland.mp3
Image/PicMusic/Wonderland.jpg
MusicHit/Wonderland.xml
Why-Staz ft. Jesi Riddle(LV_3)
Music/Why-Staz ft. Jesi Riddle.mp3
Image/PicMusic/Why-Staz ft. Jesi Riddle.jpg
MusicHit/Why-Staz ft. Jesi Riddle.xml

接着按F10断点,读取音乐信息那部分,看看读倒没有···

 

如果发现有了,哈,恭喜你了。

 

额,··这篇有点长,····留到下次再讲吧。

 

name:5+x

 

参考文章与书籍:

silverlight银光志

转载于:https://www.cnblogs.com/cheng5x/archive/2012/12/29/2839264.html

你可能感兴趣的文章