我想基于所选部分为关于动态缩放功能的图像创建自定义控件。它就像pdf阅读器中的选框缩放。我使用了Stack面板的层次结构,滚动查看器,画布然后是图像。任何人都可以告诉我如何缩放选定的矩形部分,如选框缩放?
答案 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表示百分之一,这意味着窗口。通过使用代码和滚动的ScrollToHorizontalOffset和ScrollToVerticalOffset值可以实现深度缩放。