zoukankan      html  css  js  c++  java
  • 音乐播放器之加载我的音乐

    1.引言

        在后台完成歌曲的读取之后,那么应该考虑如何将读取到歌曲以一种用户友好的方式呈现到页面中。在这里,我使用ListView控件的方式,通过数据绑定的方式加载到页面之中。

    2.ListView控件的使用

    2.1 ListView控件的介绍

        LitsView控件是Windows10里面一个高效列表控件,功能上要比ListBox控件更强大,对我个人而言,ListView可以通过SelectionModes属性来设置在点击时候不会显示被点击过的样式是我比较青睐ListView的原因。

    2.2 ListView控件的具体使用

    <ListView FontSize="22" x:Name="LstViewPlayList" HorizontalAlignment="Left" Margin="0,5,10,1" VerticalAlignment="Top" Width="280" ScrollViewer.VerticalScrollBarVisibility="Auto"  ScrollViewer.HorizontalScrollBarVisibility="Disabled" IsItemClickEnabled="True" ItemClick="LstViewPlayList_ItemClick" SelectionMode="None">
        <ListView.ItemTemplate>
            <DataTemplate>
                <Grid Height="24">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="48"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <FontIcon FontFamily="Segoe MDL2 Assets" Glyph="&#xE8D6;" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="-14,0,0,0" Width="48" Height="20" />
                    <TextBlock Grid.Column="1" Text="{Binding Title}"  Margin="-8,0,0,0" VerticalAlignment="Center" />
                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
    

    ListView控件的模板也可以有另外一种写法:将DataTemplate放在页面上的资源上,将资源的Key值取为MusicItemplate,为ListView的Itemplate设置为
    {StaticResources MusicItemplate}就可以了。

    2.3 为ListView控件绑定数据

        重载MyMusicPage的OnNavigatedTo方法,将SongManager中读取的歌曲集合赋值给ListView的ItemsSource就可以了,代码如下:

    protected override async void OnNavigatedTo(NavigationEventArgs e)
    {
        this.Loading.IsActive = true;
        songs = await SongManager.BuildSongsAsync();
        LstViewPlayList.ItemsSource = songs;
        this.Loading.IsActive = false;
    }
    
    • 说明:songs是存放Song类型的IList集合,为MyMusicPage类的一个私有字段,外界可以通过Songs属性访问,但是不可以重新赋值,这样做是为了便于与其他页面交换歌曲数据,而不是再次从安装包中读取。

    3.效果展示

    图片展示

  • 相关阅读:
    Node 之 Express 4x 骨架详解
    Express中app.use()用法 详解
    纯手打AJAX,还有一个对象转查询字符串的小方法obj=>url
    简单node服务器demo,麻雀虽小,五脏俱全
    node环境下多种方式“get数据解析”
    module.exports与exports,export与export default的区别
    2019年9月Github上最热门的JavaScript开源项目
    基于Node 的http转发demo,项目中请使用express+http-proxy-middleware
    HTTP/2 新特性总结
    TensorFlow 8 bit模型量化
  • 原文地址:https://www.cnblogs.com/xiao2/p/7092211.html
Copyright © 2011-2022 走看看