2012-02-03 94 views
0

我確定這非常簡單,但我不知道如何去做。在WPF中獲取畫布高度

我在選項卡控件的第二個選項卡中有一個畫布。 該標籤首先被禁用,直到其他方法被執行,然後該標籤被啓用,我試圖在畫布上繪製結果。

這將是很好的能夠縮放和居中在畫布中的情節,因此我需要得到它的實際尺寸。

問題是,當我第一次加載結果時,畫布的選項卡還沒有被激活,並且畫布的ActualHeight和ActualWidth都是0.我也使畫布在兩個方向上拉伸,因此寬度和高度是NaN。基本上,我是一個綁定,以獲得用於縮放劇情的尺寸......有什麼方法可以在切換到選項卡之前獲取這些值?

我明顯想避免像一個按鈕說「點擊此處重新調整圖表」的跛腳解決方案。使用應該能夠切換到選項卡並在那裏獲得結果。

+0

確實需要禁用第二個選項卡嗎?啓用該選項卡可能會更容易,只需在畫布上顯示默認圖形(可能是空白圖形),直到繪製出某個圖形爲止。這將避免處理這些情況的複雜性。 – 2012-02-03 06:31:38

+0

這是一個很好的觀點。一般來說,我贊成儘可能長時間禁用事物,以減少錯誤捕獲的代碼,以便在數據未準備好時用戶單擊控件時處理錯誤。我想我可能已經找到了解決canvas問題的解決方法現在雖然。只是要測試它。 – 2012-02-03 06:36:25

回答

2

您需要以某種方式處理Canvas的SizeChanged事件(Event to Command綁定或直接在代碼後面)。發生此事件時,請獲取畫布'ActualHeight和ActualWidth並相應地縮放圖形。

+0

這是我在上面評論中提到的解決方法。它似乎工作到目前爲止。 – 2012-02-03 06:49:57