我有一个MediaElement播放(试图播放)故事板中的声音片段 . 当我使用声音文件的绝对路径(即c:\ file \ location \ alarm.wave)时,它工作正常 . 但是,如果我使用相对的uri,那就没有用了 .
我有一个名为Resources的文件夹中的alarm.wav,它位于我的项目根目录中 . 我已经尝试将alarm.wav Build Action设置为Content,Resource和Embedded Resource . 我也在我的Resources.resx中添加了它 . 我已经尝试了许多相对URI,例如/Resources/alarm.wav和Resources / alarm.wav以及pack:// application:,,, / Capricorn2; component / Resources / alarm.wav .
这些组合都不起作用......所以我必须遗漏一些明显的东西......任何想法?
<ListBox.ItemTemplate >
<DataTemplate>
<DataTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsAlarming}" Value="True"/>
<Condition Binding="{Binding IsAudioAlarm}" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard x:Name="soundPlayer">
<Storyboard>
<MediaTimeline Source="/Capricorn2;component/Resources/alarm.wav" Storyboard.TargetName="alarmSound" RepeatBehavior="Forever"/>
</Storyboard>
</BeginStoryboard>
</MultiDataTrigger.EnterActions>
<MultiDataTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="soundPlayer"/>
</MultiDataTrigger.ExitActions>
</MultiDataTrigger>
</DataTemplate.Triggers>
<Border >
<Grid >
<MediaElement x:Name="alarmSound"/>
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
1 回答
相对URI前面没有'/' . 所以,如果您的声音文件的绝对路径是
那么它的相对路径就是