WPF - 缩放图像(约束尺寸的项控制的内部)
问题描述:
我想放大WPF并且图像视觉渲染是受约束的尺寸的项目控制内部的图像。WPF - 缩放图像(约束尺寸的项控制的内部)
例如:
<Canvas x:Name="m_canvas" MaxWidth="300" MaxHeight="300" >
<Image Source="..."
Width="300"
Height="300" />
</Canvas>
变焦代码:
var matrix = ((MatrixTransform)m_image.RenderTransform).Matrix;
var center = new Point(m_image.ActualWidth/2, m_image.ActualHeight/2);
center = matrix.Transform(center);
matrix.ScaleAt(delta.Scale.X, delta.Scale.Y, center.X, center.Y);
((MatrixTransform)m_image.RenderTransform).Matrix = matrix;
的问题是,当我缩放图像呈现大小去了帆布限制(300×300)大。我想如果图像只能放大画布。
我不想限制最大变焦,我想,如果图像的呈现大小是画布较大,这是留在里面。我不希望它重叠画布
答
你可以夹到Canvas
的界限:
<Canvas ClipToBounds="True" ...>
但我不明白你为什么要摆在首位使用Canvas
。这可能是因为有接近你的具体问题,而不需要硬编码的宽度和高度,没有任何Canvas
都更加美好的方式。
我使用的画布,因为我使用的是触摸屏事件,所以我注册到画布上的操纵事件 – Melursus 2011-06-14 14:58:01