private MasteredVideoDialog(MasteredVideoDialogViewModel vm, XamlRoot xamlRoot)
 {
     this.vm          = vm;
     this.DataContext = vm;
     this.InitializeComboBoxData(vm);
     this.InitializeComponent();
     this.Closing += MasteredVideoDialog_Closing;
     XamlRoot      = xamlRoot;
 }
        private void InitializeComboBoxData(MasteredVideoDialogViewModel vm)
        {
            var list = new List <MasteredVideoDialogViewModel.ComboBoxData>()
            {
                new MasteredVideoDialogViewModel.ComboBoxData("360P 流畅", 16),
                new MasteredVideoDialogViewModel.ComboBoxData("480P 清晰", 32),
                new MasteredVideoDialogViewModel.ComboBoxData("720P 高清(需要登录)", 64),
                new MasteredVideoDialogViewModel.ComboBoxData("720P60 高清(大会员)", 74),
                new MasteredVideoDialogViewModel.ComboBoxData("1080P 高清 (需要登录)", 80),
                new MasteredVideoDialogViewModel.ComboBoxData("1080P+ 高清(大会员)", 112),
                new MasteredVideoDialogViewModel.ComboBoxData("1080P60 高清(大会员)", 116),
                //new MasteredVideoDialogViewModel.ComboBoxData("4K 超清(大会员)" ,120)
            };

            vm.ComboBoxDataList = list;
        }
        public static async Task <MasteredVideoDialog> CreateAsync(BiliVideoMaster master, XamlRoot xamlRoot)
        {
            var model = new MasteredVideoDialogViewModel();

            model.VideoTitle = master.Title;

            //var stream = await NetHelper.HttpGetStreamAsync(master.Picture, null, null);
            //var file = await ApplicationData.Current.LocalCacheFolder.CreateFileAsync("videocovercache", CreationCollisionOption.GenerateUniqueName);
            //var fileStream = await file.OpenStreamForWriteAsync();
            //await stream.CopyToAsync(fileStream);
            //stream.Close();
            //fileStream.Close();
            //var img = new BitmapImage();
            //await img.SetSourceAsync((await file.OpenStreamForReadAsync()).AsRandomAccessStream());
            var img = new BitmapImage(new Uri(master.Picture));

            model.VideoCover = img;

            var list = master.VideoList.Select(v => new VideoInfo()
            {
                Info = new BiliVideoInfo()
                {
                    Bv       = v.Bv,
                    Cid      = v.Cid,
                    Name     = v.Name,
                    CoverUrl = master.Picture
                },
                ToDownload           = false,
                BackGroundColorBrush = master.VideoList.IndexOf(v) % 2 == 0
                ? new SolidColorBrush(Colors.WhiteSmoke) : new SolidColorBrush(Colors.White)
            }).ToList();

            model.VideoList = new ObservableCollection <VideoInfo>(list);

            var dialog = new MasteredVideoDialog(model, xamlRoot);

            return(dialog);
        }