Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 静态媒体元素_C#_Wpf_Binding_Static_Mediaelement - Fatal编程技术网

C# 静态媒体元素

C# 静态媒体元素,c#,wpf,binding,static,mediaelement,C#,Wpf,Binding,Static,Mediaelement,我有两个窗口(win1和win2)。 在win1.xaml中,我拥有mediaelement,我尝试从win2 C#源调用它,这迫使我拥有一个静态mediaelement 因此,我使用绑定来填充源代码,但要将方法调用为mediaelement.play(),我如何才能做到这一点,因为mediaelement是在xaml中声明的,并且不是静态的 谢谢你的帮助 win1.xaml } 我也尝试使用静态mediaelement(在代码隐藏中将其定义为静态类成员)。没问题,但没有声音。我不知道为什么

我有两个窗口(win1和win2)。 在win1.xaml中,我拥有mediaelement,我尝试从win2 C#源调用它,这迫使我拥有一个静态mediaelement

因此,我使用绑定来填充源代码,但要将方法调用为mediaelement.play(),我如何才能做到这一点,因为mediaelement是在xaml中声明的,并且不是静态的

谢谢你的帮助

win1.xaml

}

我也尝试使用静态mediaelement(在代码隐藏中将其定义为静态类成员)。没问题,但没有声音。我不知道为什么--也许你们当中的一些专家会理解?我放弃了静态的想法,转而将其包含在每个窗口的代码中。(这并不理想,因为我有一块代码来操作它——在我的例子中,播放通知声音——我现在在每个窗口中都复制了该代码。)如果有更好的解决方案,我很乐意听到。

你能展示一些代码吗?
<Grid x:Name="LayoutRoot" Width="630" Height="460" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="626"></ColumnDefinition>
    <ColumnDefinition Width="24*"></ColumnDefinition>
</Grid.ColumnDefinitions>

    <StackPanel Height="440" Width="620" HorizontalAlignment="Right"  VerticalAlignment="Bottom" Margin="0,0,2,-12">
        <StackPanel Height="350" Width="587" Background="White" Margin="0,10,0,0">
            <!-- MediaElement -->
            <MediaElement Margin="10,11,10,0" Name="MediaElement1" Source="{Binding MediaElement1Source, Source={x:Static bindableSettings:BindingManager.Instance}}"
             Width="565" Height="330" LoadedBehavior="Manual" UnloadedBehavior="Close" Stretch="Fill" />
        </StackPanel>
    </StackPanel>

</Grid>
    public static void MediaElement1_Play()
    {
        MessageBox.Show("MediaElement1_Play Called");
        win1.MediaElement1.Play();
        MessageBox.Show("MediaElement1_Play Exited");

        // Other statics stuff
    }
}