WPF图像控制剪辑

时间:2010-09-10 15:55:34

标签: wpf

我在自定义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>

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

您需要在自定义控件中包含滚动查看器。在滚动查看器中包括图像控件。

HTH