2010-07-01 3 views
0

WPF 응용 프로그램에서 배경 음악을 사용하고 싶습니다. 마찬가지로 여기를 참조하십시오 : How to do background music for my WPF-Application?WPF : ResourceDictionary로 MediaElement 소스 변경

그래서 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에 소스와 그 I 이것을 다음과 같이 사용할 수 있습니다 :

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

나는 내 ResourceDictionary에 무엇을 써야할지 모르겠다.

답변

2

출처는 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

+0