设置ImageBrush的图像偏移量

本文关键字:偏移量 图像 ImageBrush 设置 | 更新日期: 2023-09-27 18:21:38

我在内存中有一个大图像,我将其转换为System.Windows.Media.ImageBrush,并将其用作System.Windows.Shapes.RectangleFill。您可以用光标移动这个矩形。

基本上,我想使用矩形作为"视口"。因此,我需要改变图像的哪些部分显示在矩形内,即定义图像的矩形部分。

我该怎么做?

我看到了ImageBrush.Viewport,但这似乎不是一回事。


我对不涉及矩形的替代解决方案持开放态度,例如直接在画布上绘图或其他什么,但AFAIK-WPF不允许您直接访问像素数据(至少不容易)。

设置ImageBrush的图像偏移量

要实现这一点,您必须创建自己的矩形用户控件,允许用户创建/调整矩形大小。然后我将在矩形部分创建图像的CroppedBitmap
CroppedBBitmap MSDN
堆栈溢出示例

编辑

不,不,不@Mark,你不会把CroppedBitmap变成UserControl。您可以创建一个USerControl来公开CroppedBitmap。基本上,您可以创建一个具有以下DependencyProperties 的UserControl

  1. 图像
  2. 裁剪部分的宽度
  3. 裁剪部分的高度
  4. 裁剪部分的左侧
  5. 裁剪部分的顶部

然后,只要这些属性中有任何一个,DP回调就会对新区域进行RenderTargetBitmap Crop。