带有图像的WPF按钮不会出现

wac*_*ock 2 c# wpf image button

几个小时前我在一个问题上找到的以下代码使按钮有一个图像:

            <Button Name="bPlay" Height="70" Width="70" Margin="359,480,349,11">
            <Button.Template>
                <ControlTemplate>
                    <Border HorizontalAlignment="Center" VerticalAlignment="Center">
                        <Image Source="pack://siteoforigin:,,,/Resources/play.bmp" Width="70" Height="70" />
                    </Border>
                </ControlTemplate>
            </Button.Template>
        </Button>
Run Code Online (Sandbox Code Playgroud)

问题是,由于某种原因,它在Visual Studio上看起来很好,但是当我运行程序时,这些按钮将不会出现.我找不到问题而且我有点陷入困境.图像play.bmp显然被添加到资源中,但我仍然不知道问题是什么,谢谢!

Tre*_*ott 6

URI中的"siteoforigin"表示文件必须位于相对于正在执行的程序集的目录的给定路径中.您的可执行文件很可能位于bin/Debug文件夹中.它正在查看可执行文件的子目录,该子目录可能不存在("bin/Debug/Resources/play.bmp").

如果要以这种方式链接到文件,则必须告诉Visual Studio将其复制到输出文件夹(从"属性"窗格中).或者自己复制.

或者更好的是,您应该将其作为资源链接到它,它将嵌入到应用程序中.在属性窗格中将文件的构建类型设置为Resource,并使用项目文件夹中的相对路径链接到它.在这种情况下,在XAML中写下"Resources/play.bmp".