加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

mvvm – 如何使用Caliburn.Micro将源MediaCapture绑定到CaptureE

发布时间:2020-12-14 02:08:00 所属栏目:Windows 来源:网络整理
导读:在 Windows Phone 8.1上,我使用的是Caliburn.Micro视图模型优先方法,但由于视图模型无法了解视图,因此无法看到如何将MediaCapture对象绑定到视图中的CaptureElement. 解决方法 我有同样的问题.我正在使用MVVM Light和Windows Phone 8.1 WinRT(通用应用程序).
在 Windows Phone 8.1上,我使用的是Caliburn.Micro视图模型优先方法,但由于视图模型无法了解视图,因此无法看到如何将MediaCapture对象绑定到视图中的CaptureElement.

解决方法

我有同样的问题.我正在使用MVVM Light和Windows Phone 8.1 WinRT(通用应用程序).

我使用ContentControl并绑定到CaptureElement:

<ContentControl HorizontalAlignment="Left"         
                Width="320" Height="140" Content="{Binding CaptureElement}"/>

CaptureElement和MediaCapture是我的ViewModel中的属性:

private MediaCapture _mediaCapture;
        public MediaCapture MediaCapture
        {
            get
            {
                if (_mediaCapture == null) _mediaCapture = new MediaCapture();
                return _mediaCapture;
            }
            set
            {
                Set(() => MediaCapture,ref _mediaCapture,value);
            }
        }
        private CaptureElement _captureElement;
        public CaptureElement CaptureElement
        {
            get
            {
                if (_captureElement == null) _captureElement = new CaptureElement();
                return _captureElement;
            }
            set
            {
                Set(() => CaptureElement,ref _captureElement,value);
            }
        }

接下来我在ViewModel的构造函数中调用ConfigureMedia():

async void ConfigureMedia()
    { 
        await MediaCapture.InitializeAsync();
        CaptureElement.Source = MediaCapture;
        await MediaCapture.StartPreviewAsync();
    }

首先初始化MediaCapture,然后设置Source,最后是StartPeview是很重要的.对我来说它有效:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读