可能重复:
如何在 WPF 中将位图渲染到画布中?
我想要的很简单。我想将 aBitmapImage
放入Canvas
C# 中。我的应用程序基于 WPF。我搜索了这个,我发现了类似的问题,但我找不到我要找的东西。
简而言之,我有这个:
BitmapImage img = new BitmapImage(new Uri("c:\\xyz.jpg"));
我想把它放在画布上,平均值并不重要,它可以是一个矩形或其他任何东西。
可能重复:
如何在 WPF 中将位图渲染到画布中?
我想要的很简单。我想将 aBitmapImage
放入Canvas
C# 中。我的应用程序基于 WPF。我搜索了这个,我发现了类似的问题,但我找不到我要找的东西。
简而言之,我有这个:
BitmapImage img = new BitmapImage(new Uri("c:\\xyz.jpg"));
我想把它放在画布上,平均值并不重要,它可以是一个矩形或其他任何东西。
BitmapImage
对象不能定位在 a 中,Canvas
因为它不是控件。您可以做的是从 派生您自己的类Canvas
并覆盖该OnRender()
方法以绘制您的位图。基本上是这样的:
class CanvasWithBitmap : Canvas
{
public CanvasWithBitmap()
{
_image = new BitmapImage(new Uri(@"c:\xyz.jpg"));
}
protected override void OnRender(DrawingContext dc)
{
dc.DrawImage(_image,
new Rect(0, 0, _image.PixelWidth, _image.PixelHeight));
}
private BitmapImage _image;
}
当然,您可能需要在Canvas
through 属性中公开文件路径和坐标。如果您不想声明自己的类只是为了绘制位图,那么您不能BitmapImage
直接使用该类。显示图像的控件是Image
,让我们试试这个:
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(@"c:\xyz.jpg");
bitmap.EndInit();
Image image = new Image();
image.Source = bitmap;
现在您可以将Image
控件放在Canvas
.