把图片放在按钮里
本文关键字:按钮 | 更新日期: 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>