时间:2019-03-08 标签:c#wpfassignbitmap

c# wpf assign bitmap

我以前使用 WFA,但不,我也想尝试 WPF 平台。

我需要将现有位图分配给图像控件。

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    Bitmap sc = screenshot();
    ima.Source = new Bitmap(sc);
 }

这条线不起作用:ima.Source = new Bitmap(sc);

在图片框里我只能用这个

ima.Image = new Bitmap(sc);

但现在它抛出一个错误:

Cannot implicitly convert type 'System.Drawing.Bitmap' to 'System.Windows.Media.ImageSource'.

您还可以使用搜索功能: Convert System.Drawing.Bitmap to BitmapImage

private BitmapImage BitmapToImageSource(System.Drawing.Bitmap bitmap)
    {
        Image i = new Image();

        using (MemoryStream memory = new MemoryStream())
        {
            bitmap.Save(memory, System.Drawing.Imaging.ImageFormat.Bmp);
            memory.Position = 0;
            BitmapImage bitmapimage = new BitmapImage();
            bitmapimage.BeginInit();
            bitmapimage.StreamSource = memory;
            bitmapimage.CacheOption = BitmapCacheOption.OnLoad;
            bitmapimage.EndInit();

            i.Source = bitmapimage;

            return bitmapimage;
        }
    }

这会将路径转换为 ​​ImageSource。

<Image>
    <Image.Source>
         <BitmapImage UriSource="{Binding ImagePath}" />
    </Image.Source>
</Image>

这样试试

public ImageSource imageSourceForImageControl
{
  get
   {
     ImageSourceConverter c = new ImageSourceConverter();
     return (ImageSource)c.ConvertFrom(yourBitmap);
   }
}

https://msdn.microsoft.com/en-us/library/system.windows.media.imagesourceconverter(v=vs.110).aspx