Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 音频资源文件赢得';不能从MediaElement播放_Wpf_Xaml - Fatal编程技术网

Wpf 音频资源文件赢得';不能从MediaElement播放

Wpf 音频资源文件赢得';不能从MediaElement播放,wpf,xaml,Wpf,Xaml,我有一个MediaElement正在播放(试图播放)故事板中的声音片段。当我使用声音文件的绝对路径(即c:\file\location\alarm.wave)时,它工作正常。然而,如果我使用相对uri,它将不起作用 我的alarm.wav位于项目根目录中名为Resources的文件夹中。我已尝试将alarm.wav构建操作设置为Content、Resource和Embedded Resource。我还将其添加到了我的Resources.resx中。我尝试了一些相对URI,例如/Resources

我有一个MediaElement正在播放(试图播放)故事板中的声音片段。当我使用声音文件的绝对路径(即c:\file\location\alarm.wave)时,它工作正常。然而,如果我使用相对uri,它将不起作用

我的alarm.wav位于项目根目录中名为Resources的文件夹中。我已尝试将alarm.wav构建操作设置为Content、Resource和Embedded Resource。我还将其添加到了我的Resources.resx中。我尝试了一些相对URI,例如/Resources/alarm.wav和Resources/alarm.wav和pack://application:,,,/摩羯座2;组件/资源/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>

相对URI前面不会有“/”。所以如果你的声音文件的绝对路径是

/ProjectName/Resources/alarm.wav

它的相对路径是

资源/alarm.wav


好的,我现在有一个组合在工作。我已将alarm.wav添加到我的resources.resx中,alarm.wav文件的构建操作是Content,复制到输出是Copy Always,并且我正在使用Source=“resources/alarm.wav”,它正在工作。我的问题仍然存在,为什么我在xaml代码中的uri不起作用??