C# XAML中的媒体元素源未更改

C# XAML中的媒体元素源未更改,c#,wpf,xaml,C#,Wpf,Xaml,我正在尝试在WPF中构建一个媒体播放器。有一个媒体播放器和几个按钮。播放器的源最初设置为特定视频。单击每个按钮需要将媒体播放器的源更改为不同的URI。 第一次视频播放正确,但按钮点击似乎不会改变媒体播放器的来源。我检查了可能的解决方案,但我似乎没有注意到任何不同。我可能错过了一些基本的东西,因为我是WPF的新手 我的代码如下: <MediaElement Source="C:\video\a.mpg" Name="myMediaElement" HorizontalAlignment="L

我正在尝试在WPF中构建一个媒体播放器。有一个媒体播放器和几个按钮。播放器的源最初设置为特定视频。单击每个按钮需要将媒体播放器的源更改为不同的URI。 第一次视频播放正确,但按钮点击似乎不会改变媒体播放器的来源。我检查了可能的解决方案,但我似乎没有注意到任何不同。我可能错过了一些基本的东西,因为我是WPF的新手

我的代码如下:

<MediaElement Source="C:\video\a.mpg" Name="myMediaElement" HorizontalAlignment="Left" Height="208" Margin="10,10,0,0" VerticalAlignment="Top" Width="252" LoadedBehavior="Manual" UnloadedBehavior="Manual" Stretch="Fill"      MediaOpened="Element_MediaOpened" MediaEnded="Element_MediaEnded"/>

请告诉我哪里出了问题

删除XAML中的硬编码源,并在创建URI时指定路径为绝对路径

xaml:


还要注意,路径需要正确转义反斜杠。您可以对整个字符串使用
@
,也可以对每个斜杠使用
\

在我尝试d.moncada所说的内容后,我的应用程序开始崩溃。我连接了调试器,发现它在设置路径的地方崩溃了

   myMediaElement.Source = new Uri("C:\video\a.mpg", UriKind.Absolute); //It crashed here
这是错误消息:

Additional information: Invalid URI: A Dos path must be rooted, for example, 'c:/'.
我在谷歌上搜索了很多,但似乎没有什么能解决我的问题。然后我想如果逃逸序列有什么问题等。 我只是在路径上尝试了双斜线而不是单斜线,效果很神奇

 myMediaElement.Source = new Uri("C:\\video\\a.mpg", UriKind.Absolute); //It worked!!

我不知道这背后的确切原因,但它确实解决了我的问题

谢谢你的回答@d.mocada。我试过你的解决办法,但对我无效。但它确实帮助我实现了我想要的。路径出现了一些问题。我将在下面发布我的解决方案,并解释您的解决方案是如何帮助我实现的。啊,没错,您也可以使用@。我也会更新我的答案
   myMediaElement.Source = new Uri("C:\video\a.mpg", UriKind.Absolute); //It crashed here
Additional information: Invalid URI: A Dos path must be rooted, for example, 'c:/'.
 myMediaElement.Source = new Uri("C:\\video\\a.mpg", UriKind.Absolute); //It worked!!