动态缩放所选部件上的图像

时间:2010-12-21 11:41:46

标签: wpf image zoom

我想基于所选部分为关于动态缩放功能的图像创建自定义控件。它就像pdf阅读器中的选框缩放。我使用了Stack面板的层次结构,滚动查看器,画布然后是图像。任何人都可以告诉我如何缩放选定的矩形部分,如选框缩放?

2 个答案:

答案 0 :(得分:0)

您应该在图像上将旋转,缩放等应用为RenderTransform。然后,您需要确保Image包含在剪切结果的内容中,例如Grid。

答案 1 :(得分:0)

实际上问题在于计算所选区域的缩放率。我们必须使所选区域适合窗口的大小。为此,我们不断地将所选部分增加一个百分比,并且每次检查窗口的大小。如果窗口大小越大,我们就会停止增加所选区域。

逻辑为

    double rate=0;
    while (true)
    {
        if (selectImageHeight * (st.ScaleY + rate) < this.ActualHeight && selectImageWidth * (st.ScaleX + rate) < this.ActualWidth)
                            rate += 0.01;
                        else
                            break;
     }
     Zoom(rate);

这里o.o1表示百分之一,这意味着窗口。通过使用代码和滚动的ScrollToHorizo​​ntalOffset和ScrollToVerticalOffset值可以实现深度缩放。