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