0

我想在我的 WPF 应用程序中使用背景音乐。就像您在这里看到的那样:如何为我的 WPF 应用程序制作背景音乐?

所以我使用了 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 中写什么。

4

1 回答 1

2

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}.

于 2010-07-01T11:42:19.927 回答