【问题标题】:WPF: Changing MediaElement source with ResourceDictionaryWPF:使用 ResourceDictionary 更改 MediaElement 源
【发布时间】:2011-03-10 12:44:13
【问题描述】:

我想在我的 WPF 应用程序中使用背景音乐。 就像你可以在这里看到的:How to do background music for my WPF-Application?

所以我使用了 MediaElement。

现在我想在运行应用程序时更改它的来源。

我已经用一些背景图片做了类似的事情。在那里我有不同的 ResourceDictionaries 我正在切换以显示不同的“主题”。

我的一本字典是这样的:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <ImageBrush x:Key="Backgroundpic" ImageSource="picture.png"/>

         ...

</ResourceDictionary>

所以我可以像这样在 xaml 中使用它:

...
<Grid x:Name="Bg" Background="{DynamicResource Backgroundpic}"/>
...

但是我怎样才能用我的 MediaElement-Source 做到这一点,我可以像这样使用它:

 <MediaElement x:Name="myMediaElement" Source="{DynamicResource ???}" />

我只是不知道在我的 ResourceDictionary 中写什么。

【问题讨论】:

    标签: wpf mediaelement resourcedictionary


    【解决方案1】:

    Source 是Uri,因此您需要将资源设为 Uri。 (请注意,System.Uri 位于 System 程序集中,而不是 mscorlib,因此它需要与 String 等类型不同的 XML 命名空间):

    <ResourceDictionary
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=System">
    
        <sys:Uri x:Key="mediaSource">something.mp3</sys:Uri>
    

    然后您可以使用Source={DynamicResource mediaSource} 引用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多