WPF 裁剪问题

Posted

技术标签:

【中文标题】WPF 裁剪问题【英文标题】:WPF Clipping Problem 【发布时间】:2011-01-10 21:48:31 【问题描述】:

我有一个用户控件,它有一个二次图像作为孩子。这个Image在UserControl的底部,有一半被剪掉了(比如Control的高度是400,Image的高度是200,设置为y=300)。

现在,当我旋转图像时,它仍然像最初那样被剪裁。就像旋转 90 度时,我突然有一个只有 100 像素宽的图像。

似乎由于 UserControl 的边界而进行的原始剪辑被永久应用了。

我该如何解决这个问题?我希望我能理解我的问题;)

【问题讨论】:

【参考方案1】:

你是如何旋转图像的?如果您使用RenderTransform 进行旋转,则 WPF 不会重新渲染屏幕上已显示的内容 - 它只是旋转像素。

改为使用LayoutTransform 旋转图像;这会强制 WPF 在给定控件占据的新区域的情况下重新渲染控件,这应该会消除您看到的剪辑。

【讨论】:

你刚刚节省了我和老板一天的工作量。谢谢!【参考方案2】:

您也可以在应用渲染转换后调用InvalidateMeasure()

【讨论】:

以上是关于WPF 裁剪问题的主要内容,如果未能解决你的问题,请参考以下文章

WPF 裁剪问题

从 WPF 中的图像裁剪对角线区域

从 WPF 中的图像裁剪对角线区域

2019-11-29-WPF-元素裁剪-Clip-属性

在 WPF 中裁剪边框

wpf CroppedBitmap 将图像裁剪为双精度像素值