设置ImageBrush的图像偏移量?

时间:2012-01-27 05:30:08

标签: c# wpf

我在内存中有一张大图片,我将其转换为System.Windows.Media.ImageBrush并将其用作Fill的{​​{1}}。您可以使用光标移动此矩形。

基本上我想将矩形用作“视口”。因此,我需要更改图像的哪些部分在矩形内显示,即定义图像的矩形子部分。

我该怎么做?

我看到ImageBrush.Viewport,但这似乎并不意味着同样的事情。


我愿意接触不涉及矩形的替代解决方案,例如直接在画布上绘图,但AFAIK WPF不允许您直接访问像素数据(至少不容易)。

1 个答案:

答案 0 :(得分:2)

要实现此目的,您必须创建自己的矩形用户控件,以允许用户创建/调整矩形大小。然后我会在矩形部分中创建图像的CroppedBitmap为Cropped Bitmap MSDN
Stackoverflow example

修改

不,不,没有@Mark,你不要将CroppedBitmap变成UserControl。您创建一个公开CroppedBitmap的USerControl。基本上,您使用以下DependencyProperties

创建UserControl
  1. 图片
  2. 裁剪部分的宽度
  3. 裁剪部分的高度
  4. 裁剪部分的左侧
  5. 裁剪部分的顶部
  6. 然后,只要这些属性中的任何一个,您的DP回调就会执行新区域的RenderTargetBitmap裁剪。