如何在VisualBrush中控制MediaElement

时间:2018-01-25 17:14:05

标签: c# wpf vb.net data-binding

我在VisualBrush对象中有一个MediaElement,这样我就可以在只使用一个MediaElement的情况下运行多个视频显示。问题是我无法弄清楚如何从后面的代码控制MediaElement。背后的代码不识别名称' myMedia'。

如何访问此元素?

 <Window.Resources>
        <VisualBrush x:Key="Media" Stretch="Uniform">
            <VisualBrush.Visual>
                <MediaElement Name="myMedia" Source="c:\a.mp4" Width="100" Height="100"/>
            </VisualBrush.Visual>
        </VisualBrush>
    </Window.Resources>

1 个答案:

答案 0 :(得分:2)

您可以通过FrameworkElement.Resources property从代码中的元素按键获取资源。然后,只需将返回的资源强制转换为VisualBrush并访问并转换其VisualBrush.Visual property

<强> VB.NET:

Dim VBrush As VisualBrush = TryCast(Me.Resources("Media"), VisualBrush)

If VBrush IsNot Nothing Then
    Dim Media As MediaElement = TryCast(VBrush.Visual, MediaElement)

    If Media IsNot Nothing Then
        'Do your stuff here...
    End If
End If

<强> C#:

VisualBrush VBrush = this.Resources["Media"] as VisualBrush;

if(VBrush != null) {
    MediaElement media = VBrush.Visual as MediaElement;

    if(media != null) {
        //Do your stuff here...
    }
}