2010-07-01 64 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