c# - 带图像的 WPF 按钮不出现

标签 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>

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

最佳答案

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

如果您想以这种方式链接到该文件,则必须告诉 Visual Studio 将其复制到输出文件夹(从“属性” Pane )。或者自己复制。

或者更好的是,您应该将其作为资源链接到,它将嵌入到应用程序中。在属性 Pane 中将文件的构建类型设置为资源,并使用项目文件夹中的相对路径链接到该文件。在本例中,请在 XAML 中逐字编写“Resources/play.bmp”。

关于c# - 带图像的 WPF 按钮不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10907600/

相关文章:

c# - 我想在关闭我的 UWP 应用程序之前存储一个 int 值

c# - 我如何检查 listView 项目是否包含 FileInfo 变量?

c# - 如何将更改从模型获取到模型 View 中?

html - 在某些移动设备上图像会消失

python - 将灰度图像转换回矢量

javascript - 将带有字符串的 javascript 数组发送到 php 操作

c# - 在 Azure DevOps 中仅运行某些测试

c# - 如何调用具有方法属性的方法?

c# - 防止 ScrollViewer 处理 ListBox 项中的 Tap 事件

wpf - 将 Image 列添加到 WPF 数据网格并根据另一列中的前两个字符进行填充