WPF音乐播放器 零基础4个小时左右

作者 : admin 本文共1837个字,预计阅读时间需要5分钟 发布时间: 2024-06-9 共4人阅读

前言:winfrom转wpf用久的熟手说得最多的是,转回去做winfrom难。。当时不明白。。做一个就知道了。

WPF音乐播放器

WPF音乐播放器 零基础4个小时左右插图

WPF音乐播放器 零基础4个小时左右插图(1)

入口主程序

WPF音乐播放器 零基础4个小时左右插图(2)

 FontFamily="Microsoft YaHei" FontSize="12" FontWeight="ExtraLight"
居中显示
 WindowStartupLocation="CenterScreen" ResizeMode="NoResize"
 Title="音娱乐行音乐播放器" Height="600" Width="1010"
无边框 

     
 
StackPanel 块  Orientation="Horizontal" 水平显示  HorizontalAlignment="Center" 居中


     
         
             
         
         
             
                 
             
         
     
     
 

WPF音乐播放器 零基础4个小时左右插图(3)

**************

菜单栏目

WPF音乐播放器 零基础4个小时左右插图(4)

 
     
     
     
     
     
     

样式控件

WPF音乐播放器 零基础4个小时左右插图(5)

MenuButtonStyle 样式 
// <Border 没法放两个以上对象 需要<StackPanel  包起来  <TextBlock 图标 <ContentPresente 内容
//  控件触发器  样式触发器
  
       
       
       
           
               
                   
                       
                           
                           
                       
                   
                   
                       
                           
                       
                   
               
           
       
       
           
               
           
       
   
MenuLabelStyle 样式
 
     
     
         
             
                 
                     
                         
                         
                     
                 
             
         
     
 

ClassButtonStyle 样式
        
            
            
            
            
                
                    
                        
                            
                        
                        
                            
                                
                            
                            
                                
                            
                        
                    
                
            
            
                
                    
                
            
        

后台绑定数据
WPF音乐播放器 零基础4个小时左右插图(6)

指定关系

 DataContext = new MainViewModel();

WPF音乐播放器 零基础4个小时左右插图(7)

WPF音乐播放器 零基础4个小时左右插图(8)

WPF音乐播放器 零基础4个小时左右插图(9)

右侧内容

WPF音乐播放器 零基础4个小时左右插图(10)

 
 
     
         
         
     
     


     
     
         
             

fistpage 页面

WPF音乐播放器 零基础4个小时左右插图(11)

WPF音乐播放器 零基础4个小时左右插图(12)

爬虫

WPF音乐播放器 零基础4个小时左右插图(13)

数据绑定

WPF音乐播放器 零基础4个小时左右插图(14)

 
 
     
         
               水平显示
         
     
       模板
         
             
                 
                       关键 控件模板
                         
                     
                 
             
         
     
     
             数据模板
             

    
    


    
        
    
    
        
    

数据列表绑定

WPF音乐播放器 零基础4个小时左右插图(15)

数据细节处理

WPF音乐播放器 零基础4个小时左右插图(16)

WPF音乐播放器 零基础4个小时左右插图(17)

WPF音乐播放器 零基础4个小时左右插图(18)

ps:学wpf没有个大屏是个阻力哈哈哈

播放控制器

WPF音乐播放器 零基础4个小时左右插图(19)

 DataContext.PlayDownloadCommand,RelativeSource
播放命令指向信息



     
         
             
                 
                     

                     
                         播放
                         添加
                     
                 
                 
                     
                         
                         
                     
                 
             
         
     
 

指向信息帮助类 有点深入自己看

public class Command : ICommand
{
    public event EventHandler? CanExecuteChanged;

    public bool CanExecute(object? parameter)
    {
        return true;
    }

    public void Execute(object? parameter)
    {
        dynamic param = parameter;
        DoExecute?.Invoke(param);
    }

    public Action DoExecute { get; set; }

    public Command(Action action)
    {
        DoExecute = action;
    }
}

public class Command : Command
{
    public Command(Action action) : base(obj => action?.Invoke()) { }
}

其他类似

小经验

WPF音乐播放器 零基础4个小时左右插图(20)

WPF音乐播放器 零基础4个小时左右插图(21)

分界线 深吭来了

WPF音乐播放器 零基础4个小时左右插图(22)WPF音乐播放器 零基础4个小时左右插图(23)

    public async void Play(SongModel song)
    {
        var options = new LaunchOptions { Headless = true };
       
        // 这里有个深坑哈  先要跑一边 下载运行环境 后 注释掉 
       // await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
        //注意 两个using
        using (var browser = await Puppeteer.LaunchAsync(options))
        using (var page = await browser.NewPageAsync())
        {
            await page.GoToAsync(song.Url);
            //请求之后 就是用语法  有就获取src
            var jsSelectAllAnchors = @"Array.from(document.querySellectorAll('audio')).map(a=>a.src);";
            var urls=await page.EvaluateExpressionAsync(jsSelectAllAnchors);
            if (urls != null&&urls.Length>0)
            {
                wc.DownloadFile(urls[0],"./songs/"+song.SongName+".mp3");   
            }
        }


    }

WPF音乐播放器 零基础4个小时左右插图(24)

WPF音乐播放器 零基础4个小时左右插图(25)

遇到的问题 jsSelectAllAnchors 这里面的命令哪里来的 写错了一个单词 找了有点久 

WPF音乐播放器 零基础4个小时左右插图(26)

细节UI 播放控制台

WPF音乐播放器 零基础4个小时左右插图(27)

WPF音乐播放器 零基础4个小时左右插图(28)

WPF音乐播放器 零基础4个小时左右插图(29)

WPF音乐播放器 零基础4个小时左右插图(30)

双击

WPF音乐播放器 零基础4个小时左右插图(31)

WPF音乐播放器 零基础4个小时左右插图(32)

WPF音乐播放器 零基础4个小时左右插图(33)

跑起来了 

简单的播放 可以下载播放 下载延迟很耗时间 

小编表示 wpf 界面代码写起来 这还是有点底子 ,写起来 比vue webfrom react 都麻烦=.=。。。。。

.net几行代码音乐API各排行榜 热搜 入库-CSDN博客

ABP.Next系列02 搭个API框架要多久 项目下载 运行 -Fstyle_【abp vnext】下载并运行web api项目详细教程文档-CSDN博客

本站无任何商业行为
个人在线分享 » WPF音乐播放器 零基础4个小时左右
E-->