2010-07-01 5 views
0

Je souhaite utiliser la musique de fond dans mon application WPF. Comme vous pouvez le voir ici: How to do background music for my WPF-Application?WPF: Modification de la source MediaElement avec ResourceDictionary

Donc j'utilise un MediaElement.

Maintenant, je veux changer la source lors de l'exécution de l'application.

Je fais déjà quelque chose de similaire avec quelques images d'arrière-plan. Là, j'ai différents ResourceDictionaries que je change pour montrer différents «thèmes».

Un de mes dictionnaires ressemble à ceci:

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

donc je peux l'utiliser dans le XAML comme ceci:

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

Mais comment puis-je faire avec mon MediaElement-Source que je peut l'utiliser comme ceci:

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

Je ne sais pas quoi écrire dans mon ResourceDictionary.

Répondre

2

La source est un Uri, vous avez donc besoin de votre ressource pour être un Uri. (Notez que System.Uri est dans l'ensemble du système, et non mscorlib, donc il a besoin d'un espace de noms XML différent de celui que vous utilisez pour les types comme String):

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

Ensuite, vous pouvez référencer avec Source={DynamicResource mediaSource}.

+0

Cela fonctionne! Merci beaucoup!!! – user370446

+0

pourriez-vous s'il vous plaît donner le code complet snippet.am obtenir l'erreur près de Radhika

Questions connexes