c# WPF分配位图

本文关键字:位图 分配 WPF | 更新日期: 2023-09-27 18:02:59

我曾经使用过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);

但是现在抛出了一个错误:

不能隐式转换类型"System.Drawing"。位图'到'System.Windows.Media.ImageSource'.

c# WPF分配位图

你也可以使用Search函数:将System.Drawing.Bitmap转换为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