我在内存中有一张大图片,我将其转换为System.Windows.Media.ImageBrush
并将其用作Fill
的{{1}}。您可以使用光标移动此矩形。
基本上我想将矩形用作“视口”。因此,我需要更改图像的哪些部分在矩形内显示,即定义图像的矩形子部分。
我该怎么做?
我看到ImageBrush.Viewport,但这似乎并不意味着同样的事情。
我愿意接触不涉及矩形的替代解决方案,例如直接在画布上绘图,但AFAIK WPF不允许您直接访问像素数据(至少不容易)。
答案 0 :(得分:2)
要实现此目的,您必须创建自己的矩形用户控件,以允许用户创建/调整矩形大小。然后我会在矩形部分中创建图像的CroppedBitmap为Cropped Bitmap MSDN
Stackoverflow example
不,不,没有@Mark,你不要将CroppedBitmap变成UserControl。您创建一个公开CroppedBitmap的USerControl。基本上,您使用以下DependencyProperties
创建UserControl然后,只要这些属性中的任何一个,您的DP回调就会执行新区域的RenderTargetBitmap裁剪。