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

时间:2014-03-23 11:16:38

标签: c# wpf

我想在我的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;

这不会出现任何错误,但图像未显示。如果我添加另一个文本块代替图像,则它会出现,但不是图像。

我错过了什么吗?请帮忙,谢谢。

2 个答案:

答案 0 :(得分:0)

尝试按照以下方式构建按钮:

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

答案 1 :(得分:0)

对于“缺失”图像,需要考虑以下几点:

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

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

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

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

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

enter image description here

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

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

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

<Button Content={StaticResource MyImage} />