gpt4 book ai didi

c# - 静态媒体元素

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:07 25 4
gpt4 key购买 nike

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

所以我使用绑定(bind)来填充源代码,但是调用方法作为 mediaelement.play() 我该怎么做,因为 mediaelement 是在 xaml 中声明的并且不是静态的?

感谢您的帮助。

win1.xaml



<pre><code><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>
</code></pre>


win1.xaml.csMediaElement 初始化和其他一些东西

win2.xaml只需一个按钮即可调用该功能

win2.xaml.cs
namespace MyApp
{
public partial class win2 : Window
{
public win2()
{
InitializeComponent();
}



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

// Other statics stuff
}
}
</code></pre>

}

最佳答案

我也尝试使用静态媒体元素(在后面的代码中将其定义为静态类成员)。它编译正常,但没有声音可以播放。我不确定为什么——也许你们中的一些专家会理解?我放弃了静态的想法并返回到将它包含在每个窗口的代码中。 (不理想,因为我有一段代码来操作它——在我的例子中是播放通知声音——我现在在每个窗口中都复制了这段代码。)如果有人有更好的解决方案,我很乐意听到它。

关于c# - 静态媒体元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15041840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com