如何限制画布的大小在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;
}
}
问题是当我在画布中缩放图形时,整个画布正在扩展并占用整个空间,这是不希望的。因为我只想放大画布,而不是展开它,而且我还定义了最大高度和最大宽度。
请帮帮我。
可能:
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;
}
}