将图片放入按钮

时间:2013-08-23 07:13:00

标签: c# wpf

我是这个论坛和编程的新手。我建议开发者社区澄清我的疑虑。我道歉,因为我的英语不好,所以我必须使用谷歌翻译,可能文字并不完美,而且我缺乏信息。我在发布消息之前一直在搜索我的问题,但我没有找到任何内容。

我想将图像放在按钮中,到目前为止,我已经设法进行查询,在列表框中显示您想要放置按钮的图像。

        var obtenerImagen = (from n in basedeDatos.tablaProductos               
                             select n.imagenProducto);                          

        listBox1.ItemsSource = obtenerImagen;

现在我的想法是将图像放在查询的按钮上。

        ImageSourceConverter conversor = new ImageSourceConverter();

        image1.Source = (ImageSource)conversor.ConvertFromString(obtenerImagen);  /**/

        image1 = obtenerImagen.FirstOrDefault();  /**/

这给了我以下错误行:(/ ** /)

  • 参数1:无法从'System.Linq.IQueryable'转换为'string'
  • 无法将类型'string'隐式转换为'System.Windows.Controls.Image'
  • 'System.ComponentModel.TypeConverter.ConvertFromString(string)'的最佳重载方法匹配有一些无效的参数

我做错了什么?

3 个答案:

答案 0 :(得分:2)

您需要为列表框定义项目模板。我会告诉你一个例子:

<ListBox x:Name="listBox1>
    <ListBox.ItemTemplate>
      <DataTemplate>
        <Image Source="{Binding}" />
      </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

然后您可以使用您的代码设置列表框ItemsSource:

var obtenerImagen = (from n in basedeDatos.tablaProductos               
                     select n.imagenProducto);                          

listBox1.ItemsSource = obtenerImagen;

答案 1 :(得分:0)

这是基本上使用来自项目资源的图像并将其放在按钮中的代码。

<Button>
   <Button.Background>
      <ImageBrush ImageSource="/Application;component/Images/Image.png" />
   </Button.Background>
</Button>

答案 2 :(得分:0)

您的对象obtenerImagen是IQueryable类型的对象。

也许你应该使用:

var obtenerImagen = (from n in basedeDatos.tablaProductos               
                             select n.imagenProducto).ToList(); 

然后你有一个字符串列表。现在,您可以通过调用:

获取第一个元素
string imageSource = obtenerImagen.FirstOrDefault();