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;
问题在于,当我缩放图像时,渲染尺寸会大于画布限制(300x300)。我希望图像只能在画布上缩放。 我不想限制最大缩放比例,我想如果图像的渲染大小大于画布的大小,它将保留在里面。我不希望它与画布重叠     
已邀请:
        您可以裁剪到
Canvas
的边界:
<Canvas ClipToBounds=\"True\" ...>
但是我不明白为什么您首先使用
Canvas
。可能有一种更好的方法来解决您的特定问题,而无需硬编码宽度和高度,并且根本不需要任何“ 2”。     

要回复问题请先登录注册