首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态MediaElement

静态MediaElement
EN

Stack Overflow用户
提问于 2013-02-23 22:55:50
回答 1查看 325关注 0票数 2

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

所以我使用绑定来填充源,但是要将方法调用为mediaelement.play(),我该怎么做呢?因为媒体元素是在xaml中声明的,并且不是静态的。

谢谢你的帮助。

win1.xaml

代码语言:javascript
复制
<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>

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

win2.xaml只是一个调用函数的按钮

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

代码语言:javascript
复制
    public static void MediaElement1_Play()
    {
        MessageBox.Show("MediaElement1_Play Called");
        win1.MediaElement1.Play();
        MessageBox.Show("MediaElement1_Play Exited");

        // Other statics stuff
    }
}

}

EN

回答 1

Stack Overflow用户

发布于 2019-07-23 23:23:49

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15041840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档