把图片放在按钮里

本文关键字:按钮 | 更新日期: 2023-09-27 18:28:39

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

我想把图像放在按钮中,到目前为止,我已经设法进行了一个查询,在列表框中显示你想放按钮的图像地址。

        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)"匹配的最佳重载方法包含一些无效参数

我做错了什么?

把图片放在按钮里

您需要为您的列表框定义一个项模板。我将向您展示一个示例:

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

然后您可以使用代码设置列表框项目来源:

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

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

也许你应该使用:

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

然后你有一个字符串列表。现在您可以获得第一个元素,例如通过调用:

string imageSource = obtenerImagen.FirstOrDefault();

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

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