2010-07-01 68 views
0

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

所以我使用MediaElement。

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

我已经在做一些类似的背景图片。在那里我有不同的资源词典,我将切换显示不同的“主题”。

我的一个字典是这样的:

<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-来源,我可以像这样使用它:

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

我只是不知道要写入我的ResourceDictionary。

回答

2

来源是Uri,所以你需要你的资源是一个Uri。 (注意:是的System.Uri在系统组装,不MSCORLIB,所以它需要比你使用的类型,如字符串不同的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}引用它。

+0

它的工作原理!非常感谢你!!! – user370446 2010-07-01 11:56:23

+0

可以请你给完整的代码snippet.am获取 Radhika 2011-10-27 11:57:00