我有一个根据用户输入更改大小的画布,我想要点击一个按钮并能够缩小以查看整个画布。基本上我知道画布的高度和宽度,我只想放大或缩小,以便用户可以看到整个画布。我放大和缩小工作,但不知道如何缩放以适合?有什么想法吗?缩放以适应C#中的画布大小?
2月11日
谢谢您的答复,这是很大的帮助,我能够完全缩小在画布上。我现在遇到的问题是用户可以放大和缩小控件。因此,如果用户放大和缩小,然后尝试缩放到适合在画布上的缩放因子将被关闭,我的代码如下
这是进出画布上基本变焦:
double ScaleRate = 1.2;
public void buttonZoomIn_Click(object sender, RoutedEventArgs e)
{
st.ScaleX *= ScaleRate;
st.ScaleY *= ScaleRate;
}
public void buttonZoomOut_Click(object sender, RoutedEventArgs e)
{
st.ScaleX /= ScaleRate;
st.ScaleY /= ScaleRate;
}
缩放以适应按钮,我想按缩小完全在画布上:
private void zoomToFitBt_Click(object sender, RoutedEventArgs e)
{
float maxWidthScale = (float)ScrollViewerCanvas.Width/(float)Canvas1.Width;
float maxHeightScale = (float)ScrollViewerCanvas.Height/(float)Canvas1.Height;
float scale = Math.Min(maxHeightScale, maxWidthScale);
if (st.ScaleX > scale || st.ScaleY> scale)
{
st.ScaleX *= scale;
st.ScaleY *= scale;
}
}
如果我按下缩放以适应按钮关闭启动它是好的,但其在用户做了一些手动缩放,它搞砸了。我的想法是,也许每当用户点击缩放以适应按钮时,它将首先回到其初始状态,然后使用缩放来适应代码,但不确定这一点。
感谢基于给定的仅有的一些资料你的帮助球员
1.找出你需要放大多少才能看到整个画布; 2.做到这一点。 – 2011-02-09 21:13:49
需要看到缩放代码。 – 2011-02-09 21:16:35