示例#1
0
        private UIElement LastUIElement = null;//上一次的播放组件

        public ProgramRegionPlayManager(Canvas canvas, ProgramRegion programregion, IMediaInfoService mediaService, ILogWrite logWrite)
        {
            canvasLayout     = canvas;
            programRegion    = programregion;
            mediaInfoService = mediaService;
            playList         = programRegion.MediaList.OrderBy(x => x.play_order).ToList();//排序
            _logWrite        = logWrite;
        }
        /// <summary>
        /// 增加media组件
        /// </summary>
        /// <param name="layout"></param>
        /// <param name="SourcePath"></param>
        /// <param name="Region"></param>
        public static UIElement AddMediaComponent(this Canvas layout, string SourcePath, ProgramRegion Region, bool Visible = true)
        {
            MediaControl mediaControl = new MediaControl();

            mediaControl.mediaUri = new Uri(SourcePath);
            Canvas.SetLeft(mediaControl, Region.x);
            Canvas.SetTop(mediaControl, Region.y);
            mediaControl.Width      = Region.w;
            mediaControl.Height     = Region.h;
            mediaControl.Visibility = Visible == true ? Visibility.Visible : Visibility.Hidden;
            layout.Children.Add(mediaControl);
            mediaControl.LoadMedia();
            return(mediaControl);
        }
        /// <summary>
        /// 增加web组件
        /// </summary>
        /// <param name="layout"></param>
        /// <param name="SourcePath"></param>
        /// <param name="Region"></param>
        public static UIElement AddWebComponent(this Canvas layout, string SourcePath, ProgramRegion Region, bool Visible = true)
        {
            ChromiumWebBrowser chromiumWebBrowser = new ChromiumWebBrowser();

            chromiumWebBrowser.Address = SourcePath;
            Canvas.SetLeft(chromiumWebBrowser, Region.x);
            Canvas.SetTop(chromiumWebBrowser, Region.y);
            chromiumWebBrowser.Width      = Region.w;
            chromiumWebBrowser.Height     = Region.h;
            chromiumWebBrowser.Visibility = Visible == true ? Visibility.Visible : Visibility.Hidden;
            layout.Children.Add(chromiumWebBrowser);
            return(chromiumWebBrowser);
        }
        /// <summary>
        /// 增加图片组件
        /// </summary>
        /// <param name="FilePath"></param>
        /// <returns></returns>
        public static UIElement AddImageComponent(this Canvas layout, string SourcePath, ProgramRegion Region, bool Visible = true)
        {
            Image imageCtrl = new Image();
            var   image     = new BitmapImage();

            image.BeginInit();
            image.UriSource = new Uri(SourcePath);
            image.EndInit();
            ImageBehavior.SetAnimatedSource(imageCtrl, image);
            Canvas.SetLeft(imageCtrl, Region.x);
            Canvas.SetTop(imageCtrl, Region.y);
            imageCtrl.Width            = Region.w;
            imageCtrl.Height           = Region.h;
            imageCtrl.Stretch          = Stretch.Fill;
            imageCtrl.StretchDirection = StretchDirection.Both;
            imageCtrl.Visibility       = Visible == true ? Visibility.Visible : Visibility.Hidden;
            layout.Children.Add(imageCtrl);
            return(imageCtrl);
        }
        /// <summary>
        /// 增加外部exe组件
        /// </summary>
        /// <param name="layout"></param>
        /// <param name="SourcePath"></param>
        /// <param name="Region"></param>
        public static UIElement AddExeComponent(this Canvas layout, string SourcePath, string Args, ProgramRegion Region)
        {
            AppControl appControl = new AppControl();

            appControl.ExeName      = SourcePath;
            appControl.CtrlLocation = new System.Windows.Point()
            {
                X = Region.x, Y = Region.y
            };
            appControl.Width  = Region.w;
            appControl.Height = Region.h;
            layout.Children.Add(appControl); //先放入窗体内部
            appControl.LoadExe(Args);        //再执行加载exe
            return(appControl);
        }
        /// <summary>
        /// 增加PPT组件
        /// </summary>
        /// <param name="layout"></param>
        /// <param name="SourcePath"></param>
        /// <param name="Region"></param>
        public static UIElement AddPPTComponent(this Canvas layout, string SourcePath, ProgramRegion Region, bool Visible = true)
        {
            AppControl appControl = new AppControl();

            appControl.ExeName      = @"";
            appControl.CtrlLocation = new System.Windows.Point()
            {
                X = Region.x, Y = Region.y
            };
            appControl.Width      = Region.w;
            appControl.Height     = Region.h;
            appControl.Visibility = Visible == true ? Visibility.Visible : Visibility.Hidden;
            layout.Children.Add(appControl);
            appControl.LoadExe(SourcePath);
            return(appControl);
        }