在Windows窗体中我可以在资源中添加图像,然后在用户点击事件处理程序时更改图像,不确定Xaml中的更改但我无法弄明白。
private void guessClick(object sender, RoutedEventArgs e)
{
wrongGuesses++;
hangmanPicture.Image = hangmanImage[wrongGuesses];
}
如果我只是放hangmanPicture = hangmanImage[wrongGuesses];
我得到不能转换。我不明白为什么它试图转换任何东西。
答案 0 :(得分:0)
如果您的 hangmanImage 数组是ImageSource
或BitmapImage
的数组,您可以像这样使用它:
private void guessClick(object sender, RoutedEventArgs e)
{
wrongGuesses++;
hangmanPicture.Source = hangmanImage[wrongGuesses];
}
否则,您必须将 hangmanImage 中的任何内容转换为ImageSource
或BitmapImage
。
如果是Bitmap
,您可以在该代码之前使用以下转换器:
public static BitmapImage ConvertToBitmapImageFromBitmap(Bitmap bitmap)
{
using(var memory = new MemoryStream())
{
BitmapImage bitmapImage;
bitmap.Save(memory, ImageFormat.Png);
memory.Position = 0;
bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = memory;
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.EndInit();
return bitmapImage;
}
}
那么,那将是这样的:
hangmanPicture.Source = ConvertToBitmapImageFromBitmap(hangmanImage[wrongGuesses]);