我有一個根據用戶輸入更改大小的畫布,我想要點擊一個按鈕並能夠縮小以查看整個畫布。基本上我知道畫布的高度和寬度,我只想放大或縮小,以便用戶可以看到整個畫布。我放大和縮小工作,但不知道如何縮放以適合?有什麼想法嗎?縮放以適應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