如何限制画布的大小在wpf时缩放

本文关键字:wpf 缩放 何限制 | 更新日期: 2023-09-27 18:14:25

我正在设计一个Wpf在visual studio 2010应用程序,这是实现画布缩放功能。事件是:

  < canvas MouseWheel="Canvas_MouseWheel" />

和后端在xaml.cs是:

  const double ScaleRate = 1.1;
  private void Canvas_MouseWheel(object sender, MouseWheelEventArgs e)
        {
            if (e.Delta > 0)
            {
                st.ScaleX *= ScaleRate;
                st.ScaleY *= ScaleRate;
            }
            else
            {
                st.ScaleX /= ScaleRate;
                st.ScaleY /= ScaleRate;
            }
        } 

问题是当我在画布中缩放图形时,整个画布正在扩展并占用整个空间,这是不希望的。因为我只想放大画布,而不是展开它,而且我还定义了最大高度和最大宽度。

请帮帮我。

如何限制画布的大小在wpf时缩放

可能:

 private void Canvas_MouseWheel(object sender, MouseWheelEventArgs e)
    {
        double maxScale = 2.0;
        if (e.Delta > 0)
        {
            st.ScaleX *= ScaleRate;
            st.ScaleY *= ScaleRate;
        }
        else
        {
            st.ScaleX /= ScaleRate;
            st.ScaleY /= ScaleRate;
        }
        if(st.ScaleX > maxScale)
        {
            st.ScaleX = maxScale;
        }
        if(st.ScaleY > maxScale)
        {
            st.ScaleY = maxScale;
        }
    }