将图像添加到WPF C#中的按钮,图像不显示

将图像添加到WPF C#中的按钮,图像不显示,c#,wpf,C#,Wpf,我想在我的windows 8桌面应用程序中创建一个按钮,它将有一个图像和一个文本块。我必须使用C#编码来实现这一点。 我的代码如下: Button btn = new Button(); StackPanel btnContentPanel = new StackPanel(); btnContentPanel.Orientation = Orientation.Horizontal;

我想在我的windows 8桌面应用程序中创建一个按钮,它将有一个图像和一个文本块。我必须使用C#编码来实现这一点。 我的代码如下:

            Button btn = new Button();               
            StackPanel btnContentPanel = new StackPanel();
            btnContentPanel.Orientation = Orientation.Horizontal;

            Image img = new Image();
            img.Source = new BitmapImage(newUri(@"C:\Users\Desktop\Images\download.jpg"));
            img.Stretch = Stretch.Uniform;
            btnContentPanel.Children.Add(img);

            TextBlock txBlock = new TextBlock();
            txBlock.Text = "My Button";
            btnContentPanel.Children.Add(txBlock);               

            btn.Content = btnContentPanel;
这不会给出任何错误,但图像不会显示。如果我添加另一个文本块来代替图像,那么它就会出现,而不是图像


我遗漏了什么吗?请帮助,谢谢。

尝试按如下方式构建按钮:

Button btn= new Button
{
    Width = 30,
    Height = 30,
    Content = new Image
    {
        Source = new BitmapImage(@"C:\Users\Desktop\Images\download.jpg"))
    }
};

在“丢失”图像的情况下,需要考虑以下几点:

当Xaml找不到资源时,它可能会忽略它(当它不会抛出XamlParseException时)

必须正确添加和定义资源:

确保它存在于项目中预期的位置

确保它是以您的项目作为资源构建的

(右键单击->属性->BuildAction='Resource')

在类似情况下还需要尝试另一件事,这对于重用映像(或任何其他资源)也很有用:

将图像定义为Xaml中的资源:

<UserCondrol.Resources>
     <Image x:Key="MyImage" Source.../>
</UserControl.Resources>
And later use it in your desired control/controls:

<Button Content={StaticResource MyImage} />

然后在所需的控件中使用它:

图像位于正确的位置。我签入了构建操作,构建操作是“内容”。我改为“嵌入式资源”,因为我找不到“资源”选项。但它仍然不起作用。基本上,我的按钮是动态创建的,其内容是动态设置的。所以我试着通过StackPanel放置文本和图像。唯一的问题是图像。请将其添加到您的资源代码应按原样工作。您应该检查的事项:尝试不同的图像。如果这样做有效,那么图像文件本身可能就是问题的根源。您的应用程序中是否定义了任何样式?也许有什么东西,设置-例如-该图像的可见性隐藏或折叠。。。