WPF图像控件剪辑

3
我在自定义的ContentControl中放置了一个Image控件,用于应用一些变换(通过RenderTransform进行缩放和平移)。问题是,如果图像大于控件区域,则无论我如何滚动或缩小,它都会被裁剪为原始视口中的样子。
有没有办法强制图像完全绘制出来?(已尝试将ClipToBounds设置为false)
顺便说一下,如果我尝试将图像作为画布的背景,它就可以正常工作。
编辑,以下是一些细节。
我的控件:
public class CustomControl: ContentControl

设置阶段:
source = VisualTreeHelper.GetChild(this, 0) as FrameworkElement;
...
source.RenderTransform = this.transformGroup;

变换组由一种平移和一种缩放变换组成。
XAML 部分如下:
<ui:CustomControl ClipToBounds="True">
    <Image
        Source="{Binding Path=BackgroundImage}"
        Stretch="None"
        ClipToBounds="False"/>
</ui:CustomControl>

3
你能发布相关的 XAML 代码吗?你正在对哪个元素应用变换,是图像还是内容控件? - Brad Cunningham
2个回答

6

我想我找到了一个解决方案。将我的图像包装在画布中解决了这个问题,可能是由于画布大小的计算方式。


0
你需要在自定义控件中包含滚动视图。在滚动视图中包含图像控件。
希望这有帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接