Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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
C# 当应用程序从.exe启动时,WPF MediaElement不播放视频_C#_Wpf_Xaml - Fatal编程技术网

C# 当应用程序从.exe启动时,WPF MediaElement不播放视频

C# 当应用程序从.exe启动时,WPF MediaElement不播放视频,c#,wpf,xaml,C#,Wpf,Xaml,我已经为我的应用程序设置了一个带有视频的MediaElement作为窗口背景。它可以工作,但只有当我从VisualStudio启动程序时。如果我尝试从builded.exe启动它,MediaElement中的视频将不会加载,背景仍为黑色。 这是我的代码: <Window.Background > <VisualBrush> <VisualBrush.Visual> <MediaElement Source=

我已经为我的应用程序设置了一个带有视频的MediaElement作为窗口背景。它可以工作,但只有当我从VisualStudio启动程序时。如果我尝试从builded.exe启动它,MediaElement中的视频将不会加载,背景仍为黑色。 这是我的代码:

<Window.Background >
    <VisualBrush>
        <VisualBrush.Visual>
            <MediaElement Source="Resources/BF4R.wmv" LoadedBehavior="Play" IsMuted="True" MediaEnded="BGRAIN_MediaEnded" ></MediaElement>
        </VisualBrush.Visual>
    </VisualBrush>
</Window.Background>
这些是BF4R.wmv属性:

构建操作:内容


复制到输出目录:始终复制

当本地应用程序可以访问特定资源,但安装的版本无法访问时,通常只有以下几个可能的原因:

1未正确部署资源:

为了确保资源得到部署,您通常应该将它们的构建操作设置为Content并复制到输出目录以始终复制。我看你已经这样做了。如果要使用项目属性页的“发布”选项卡发布应用程序,请单击相关按钮,验证资源是否已列出并设置为包含在“应用程序文件”对话框窗口中

2部署应用程序时,无法通过文件路径访问资源:

从MSDN页面使用以下格式的文件路径是一种良好的做法:

以下示例显示位于引用程序集的项目文件夹的子文件夹中的XAML资源文件的包URI

所以在你的情况下,这更像是:

Source="pack://application:,,,/YourAssemblyName;component/Resources/BF4R.wmv"

可执行文件旁边是否有Resources/BF4R.wmv。否。它不是,现在它起作用了。但我想让它从嵌入式资源播放。我该如何做呢?使用as资源而不是嵌入式资源,并使用包URI来标识资源。我尝试了源代码=pack://siteoforigin:,,,/Resources/BF4R.wmv,它仍为黑色,但在designer中显示了背景。siteoforigin表示您已从internet资源部署了应用程序,并尝试从中下载资源。我尝试了此操作。它在designer中工作,但在运行时媒体元素保持黑色。
Source="pack://application:,,,/YourAssemblyName;component/Resources/BF4R.wmv"