C# 使位图对象在组合框中可见
我有一个组合框,它应该显示两个值,一个字符串和一张图片。我有一个添加到组合框中的一些对象的列表。这些对象具有字符串和位图字段。我可以在组合框中显示字符串,但找不到显示位图的方法 有没有办法让C# 使位图对象在组合框中可见,c#,wpf,xaml,combobox,C#,Wpf,Xaml,Combobox,我有一个组合框,它应该显示两个值,一个字符串和一张图片。我有一个添加到组合框中的一些对象的列表。这些对象具有字符串和位图字段。我可以在组合框中显示字符串,但找不到显示位图的方法 有没有办法让显示我的位图 这是我的ComboBox XAML代码,我知道它不起作用,但我想不出其他方法来实现它 <ComboBox x:Name="typeBox" Grid.Column="1" HorizontalAlignment="Left" Margin="10,318,0,0" VerticalAlig
显示我的位图
这是我的ComboBox XAML代码,我知道它不起作用,但我想不出其他方法来实现它
<ComboBox x:Name="typeBox" Grid.Column="1" HorizontalAlignment="Left" Margin="10,318,0,0" VerticalAlignment="Top" Width="300" Height="29">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding name}" Grid.Column="0" Grid.Row="0"/>
<Image Width="20" Height="20" HorizontalAlignment="Right" Grid.Row="0" Grid.Column="1" Source="{Binding img}"/>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
C#我的相关资源(类型和礼仪)课程代码:
public NewRes()
{
pc = new PicChanger();
InitializeComponent();
typeBox.DataContext = GlowingEarth.types;
tagBox.DataContext = GlowingEarth.tags;
if (GlowingEarth.types.Count > 0)
{
foreach (Model.Type t in GlowingEarth.types)
{
typeBox.Items.Add(t);
}
}
if (GlowingEarth.tags.Count > 0)
{
foreach (Model.Etiquette t in GlowingEarth.tags)
{
tagBox.Items.Add(t);
}
}
}
public class Type
{
private string mark;
public string name { get; set; }
private string desc;
private Bitmap img;
public Type(string m, string n, string d, Bitmap mg)
{
mark = m;
name = n;
desc = d;
img = mg;
}
}
public class Etiquette
{
private string mark;
public string colCod { get; set; }
private string desc;
public Etiquette(string m, string c, string d)
{
mark = m;
colCod = c;
desc = d;
}
}
看看这个
这个答案对你来说已经足够了看看这个
这个答案对您来说已经足够了您应该将
系统.Drawing.Bitmap
对象转换为系统.Windows.Media.Imaging.BitmapImage
:
…并通过公共属性公开位图图像
:
那么您的绑定应该可以工作了。您不能直接绑定到
系统.Drawing.Bitmap
您应该将系统.Drawing.Bitmap
对象转换为系统.Windows.Media.Imaging.BitmapImage
:
…并通过公共属性公开位图图像
:
那么您的绑定应该可以工作了。无法直接绑定到
系统。绘图。位图将检查此问题。非常感谢。投票结果:)将查看此内容。非常感谢。投票赞成:)
public class Type
{
private string mark;
public string name { get; set; }
private string desc;
private Bitmap bitmap;
public BitmapImage img { get; set; }
public Type(string m, string n, string d, Bitmap mg)
{
mark = m;
name = n;
desc = d;
bitmap = mg;
img = Convert(mg);
}
private static BitmapImage Convert(Bitmap bitmap)
{
BitmapImage bitmapImage;
using (System.IO.MemoryStream memory = new System.IO.MemoryStream())
{
bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Png);
memory.Position = 0;
bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = memory;
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.EndInit();
}
return bitmapImage;
}
}