【问题标题】:How to Restrict canvas size in wpf when Zoomed缩放时如何限制wpf中的画布大小
【发布时间】:2013-05-21 04:02:08
【问题描述】:

我正在 Visual Studio 2010 应用程序中设计一个 Wpf,它在 Canvas 中实现缩放功能。 事件是:

  < 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;
            }
        } 

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

请帮我解决这个问题。

【问题讨论】:

  • 能否提供给我们相关的xaml?

标签: c# wpf


【解决方案1】:

也许:

 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;
        }

    } 

【讨论】:

    猜你喜欢
    • 2016-04-10
    • 1970-01-01
    • 2016-04-13
    • 2017-02-27
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多