今天把导航改成HubTile模式了,见图:
XAML:
<Grid x:Name="ContentPanel" Grid.Row="1"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Margin="10,0,10,0">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<toolkit:HubTile Grid.Row="0" Grid.Column="0"
Margin="12,12,0,0"
x:Name="HY" ManipulationCompleted="ManipulationCompleted"/>
<toolkit:HubTile Grid.Row="0" Grid.Column="1"
Margin="12,12,0,0"
x:Name="OM" ManipulationCompleted="ManipulationCompleted"/>
<toolkit:HubTile Grid.Row="1" Grid.Column="0"
Margin="12,12,0,0"
x:Name="RY" ManipulationCompleted="ManipulationCompleted"/>
<toolkit:HubTile Grid.Row="1" Grid.Column="1"
Margin="12,12,0,0"
x:Name="HanY" ManipulationCompleted="ManipulationCompleted"/>
<toolkit:HubTile Grid.Row="2" Grid.Column="0"
Margin="12,12,0,0"
x:Name="YY" ManipulationCompleted="ManipulationCompleted" />
<toolkit:HubTile Grid.Row="2" Grid.Column="1"
Margin="12,12,0,0"
x:Name="FAV" ManipulationCompleted="ManipulationCompleted" />
HorizontalAlignment="Left"
VerticalAlignment="Center"
Margin="10,0,10,0">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<toolkit:HubTile Grid.Row="0" Grid.Column="0"
Margin="12,12,0,0"
x:Name="HY" ManipulationCompleted="ManipulationCompleted"/>
<toolkit:HubTile Grid.Row="0" Grid.Column="1"
Margin="12,12,0,0"
x:Name="OM" ManipulationCompleted="ManipulationCompleted"/>
<toolkit:HubTile Grid.Row="1" Grid.Column="0"
Margin="12,12,0,0"
x:Name="RY" ManipulationCompleted="ManipulationCompleted"/>
<toolkit:HubTile Grid.Row="1" Grid.Column="1"
Margin="12,12,0,0"
x:Name="HanY" ManipulationCompleted="ManipulationCompleted"/>
<toolkit:HubTile Grid.Row="2" Grid.Column="0"
Margin="12,12,0,0"
x:Name="YY" ManipulationCompleted="ManipulationCompleted" />
<toolkit:HubTile Grid.Row="2" Grid.Column="1"
Margin="12,12,0,0"
x:Name="FAV" ManipulationCompleted="ManipulationCompleted" />
</Grid>
cs:读取所有频道第一首歌的专辑封面
1 public ChannelTile()
2 {
3 InitializeComponent();
4 TouchPanel.EnabledGestures = GestureType.Tap | GestureType.HorizontalDrag;
5 if (!PlayListHelper.IsInited)
6 {
7 PlayListHelper.InitChannelComplete += new Action(PlayListHelper_InitChannelComplete);
8 PlayListHelper.InitChannel();//初始化播放列表
9 }
10 }
11
12 /// <summary>
13 /// 初始化tile的image跟title
14 /// </summary>
15 void PlayListHelper_InitChannelComplete()
16 {
17 var list = PlayListHelper.GetEachChannel1stSong();//获取所有频道的第一首歌曲
18 var song = list.Where(s => s.channel == (int)ChannelType.华语).ToList();
19 if (song != null && song.Count > 0)
20 {
21 var s = song[0];
22 HY.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
23 HY.Title = ChannelType.华语.ToString();
24 HY.Message=s.artist+"-"+s.title;
25 }
26 else
27 {
28 HY.Title = ChannelType.华语.ToString();
29 HY.Message = "No Song!";
30 }
31
32
33 song = list.Where(s => s.channel == (int)ChannelType.欧美).ToList();
34 if (song != null && song.Count > 0)
35 {
36 var s = song[0];
37 OM.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
38 OM.Title = ChannelType.欧美.ToString();
39 OM.Message = s.artist + "-" + s.title;
40 }
41 else
42 {
43 OM.Title = ChannelType.欧美.ToString();
44 OM.Message = "No Song!";
45 }
46
47
48 song = list.Where(s => s.channel == (int)ChannelType.韩语).ToList();
49 if (song != null && song.Count > 0)
50 {
51 var s = song[0];
52 HanY.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
53 HanY.Title = ChannelType.韩语.ToString();
54 HanY.Message = s.artist + "-" + s.title;
55 }
56 else
57 {
58 HanY.Title = ChannelType.韩语.ToString();
59 HanY.Message = "No Song!";
60 }
61
62 song = list.Where(s => s.channel == (int)ChannelType.日语).ToList();
63 if (song != null && song.Count > 0)
64 {
65 var s = song[0];
66 RY.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
67 RY.Title = ChannelType.日语.ToString();
68 RY.Message = s.artist + "-" + s.title;
69 }
70 else
71 {
72 RY.Title = ChannelType.日语.ToString();
73 RY.Message = "No Song!";
74 }
75
76 song = list.Where(s => s.channel == (int)ChannelType.粤语).ToList();
77 if (song != null && song.Count > 0)
78 {
79 var s = song[0];
80 YY.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
81 YY.Title = ChannelType.粤语.ToString();
82 YY.Message = s.artist + "-" + s.title;
83 }
84 else
85 {
86 YY.Title = ChannelType.粤语.ToString();
87 YY.Message = "No Song!";
88 }
89
90 song = list.Where(s => s.channel == (int)ChannelType.最爱).ToList();
91 if (song != null&&song.Count>0)
92 {
93 var s = song[0];
94 FAV.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
95 FAV.Title = ChannelType.最爱.ToString();
96 FAV.Message = s.artist + "-" + s.title;
97 }
98 else
99 {
100 FAV.Title = ChannelType.最爱.ToString();
101 FAV.Message = "No Song!";
102 }
103
2 {
3 InitializeComponent();
4 TouchPanel.EnabledGestures = GestureType.Tap | GestureType.HorizontalDrag;
5 if (!PlayListHelper.IsInited)
6 {
7 PlayListHelper.InitChannelComplete += new Action(PlayListHelper_InitChannelComplete);
8 PlayListHelper.InitChannel();//初始化播放列表
9 }
10 }
11
12 /// <summary>
13 /// 初始化tile的image跟title
14 /// </summary>
15 void PlayListHelper_InitChannelComplete()
16 {
17 var list = PlayListHelper.GetEachChannel1stSong();//获取所有频道的第一首歌曲
18 var song = list.Where(s => s.channel == (int)ChannelType.华语).ToList();
19 if (song != null && song.Count > 0)
20 {
21 var s = song[0];
22 HY.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
23 HY.Title = ChannelType.华语.ToString();
24 HY.Message=s.artist+"-"+s.title;
25 }
26 else
27 {
28 HY.Title = ChannelType.华语.ToString();
29 HY.Message = "No Song!";
30 }
31
32
33 song = list.Where(s => s.channel == (int)ChannelType.欧美).ToList();
34 if (song != null && song.Count > 0)
35 {
36 var s = song[0];
37 OM.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
38 OM.Title = ChannelType.欧美.ToString();
39 OM.Message = s.artist + "-" + s.title;
40 }
41 else
42 {
43 OM.Title = ChannelType.欧美.ToString();
44 OM.Message = "No Song!";
45 }
46
47
48 song = list.Where(s => s.channel == (int)ChannelType.韩语).ToList();
49 if (song != null && song.Count > 0)
50 {
51 var s = song[0];
52 HanY.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
53 HanY.Title = ChannelType.韩语.ToString();
54 HanY.Message = s.artist + "-" + s.title;
55 }
56 else
57 {
58 HanY.Title = ChannelType.韩语.ToString();
59 HanY.Message = "No Song!";
60 }
61
62 song = list.Where(s => s.channel == (int)ChannelType.日语).ToList();
63 if (song != null && song.Count > 0)
64 {
65 var s = song[0];
66 RY.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
67 RY.Title = ChannelType.日语.ToString();
68 RY.Message = s.artist + "-" + s.title;
69 }
70 else
71 {
72 RY.Title = ChannelType.日语.ToString();
73 RY.Message = "No Song!";
74 }
75
76 song = list.Where(s => s.channel == (int)ChannelType.粤语).ToList();
77 if (song != null && song.Count > 0)
78 {
79 var s = song[0];
80 YY.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
81 YY.Title = ChannelType.粤语.ToString();
82 YY.Message = s.artist + "-" + s.title;
83 }
84 else
85 {
86 YY.Title = ChannelType.粤语.ToString();
87 YY.Message = "No Song!";
88 }
89
90 song = list.Where(s => s.channel == (int)ChannelType.最爱).ToList();
91 if (song != null&&song.Count>0)
92 {
93 var s = song[0];
94 FAV.Source = new BitmapImage(new Uri(s.picture, UriKind.Absolute));
95 FAV.Title = ChannelType.最爱.ToString();
96 FAV.Message = s.artist + "-" + s.title;
97 }
98 else
99 {
100 FAV.Title = ChannelType.最爱.ToString();
101 FAV.Message = "No Song!";
102 }
103
104 }
点击频道导航到MainPage:
1 HubTile ht = sender as HubTile;
2 this.NavigationService.Navigate(new Uri("/MainPage.xaml?Channle=" + ht.Title, UriKind.Relative));