imageview包含许多获取元素的变换矩阵和包围矩形的属性和方法。
一个项目最重要的任务是确定渲染图像所需的变换矩阵。这可以通过使用GetItemImageTransform.此方法返回一个LeadMatrix其中包含将图像相对于查看器的左上角(客户端区域的像素0,0)放置在查看器表面所需的所有转换值。
自定义渲染图像:
订阅查看器的一个呈现事件。指图像查看器渲染欲了解更多信息
获取图像大小使用ImageViewerItem。图象尺寸或imageview。GetItemImageSize.将此值设置为图象尺寸
类型变量LeadSizeD
通常情况下,需要渲染整个图像。因此,将目标矩形创建为类型变量LeadRectD与价值观0, 0 imageSize.Width imageSize.Height
获得该项目图像的变换矩阵,使用GetItemImageTransform,将它设置在一个变量中imageTransform
类型的LeadMatrix
将这个矩阵设置为渲染上下文
使用目标矩形渲染图像
除了图像变换,您还可以使用以下方法获得该项的任何其他部分的变换矩阵:
成员 | 描述 |
---|---|
GetItemTransform | 返回项目本身的变换。用于绘制项目边框,例如在添加项目填充后 |
GetItemContentTransform | 返回内容区域的转换 |
GetItemFloaterTransform | 返回浮动图像的转换(如果有的话)。使用GetItemFloaterSize以上述自定义渲染图像的相同方式自定义渲染浮动器 |
查看器包含许多方法和属性,用于在物理(控件)和逻辑(视图内部)坐标中获得项目(或其任何部分)的边界矩形:
成员 | 描述 |
---|---|
GetItemViewBounds | 获取包括图像在内的项目任何部分的当前物理(控制像素坐标)边界 |
GetItemBounds | 获取包括图像在内的项的任何部分的当前逻辑边界(不包括当前转换) |
GetItemViewBounds可用于获取包括图像在内的项目的任何部分的当前物理(控制像素坐标)边界。此方法可用于执行手动命中测试或针对剪切矩形进行测试。GetItemBounds返回逻辑坐标中的相同值(不包括当前转换)。
的ImageViewerItemPart枚举可以在方法和属性中使用,以提供我们感兴趣的项目的部分。
视图是使用ViewTransform.视图边界可以使用GetViewBounds.视图的自定义渲染可以按照上面自定义渲染图像中描述的相同方式执行,用视图值替换图像变换和边界。
从鼠标单击等事件中获得的点在物理(像素)坐标中,而图像或视图中的点在逻辑坐标中。将一个点从一个坐标转换到另一个坐标需要应用正确的转换矩阵。这可以通过获取相关矩阵并转换点来手动完成,也可以使用以下任何方法自动完成imageview辅助方法:
成员 | 描述 |
---|---|
ConvertPoint | 将一个点从任意坐标转换为另一个坐标 |
ConvertPoints | 将点数组从任何坐标转换为另一个坐标 |
ConvertRect | 将矩形从任意坐标转换为另一个坐标 |
ConvertTransform | 将一个相对于某项的变换矩阵转换为相对于不同项的变换矩阵 |
ConvertBoundsToView | 将矩形从逻辑视图坐标转换为物理视图坐标 |