2017-07-15 82 views
2

我正在創建一個程序,您可以在堆疊窗格中佈局形狀,並通過單擊並拖動形狀來移動它們。這些形狀配置可以保存並從文件加載。我也希望能夠隨意調整窗口大小。這是問題出現的地方。當父級縮放時,如何使節點的比例不變?

我嘗試了很多解決方案來保持形狀的位置不變,同時使保存和加載配置變得簡單。最好的做法是做一些魔術來綁定堆棧的縮放比例,以便填充其父級,而不是綁定它的高度和寬度屬性。

這使堆棧窗格內的形狀在堆棧窗格內保持其位置不變,這正是我想要的。但是,在每個形狀中,我使用的imageview作爲「鎖定」形狀的按鈕,因此無法通過鼠標拖動和移動它。此圖像視圖也會在堆疊面板縮放時縮放,這不是我想要的。

總之,因爲我的堆棧窗格的內容在縮放時會縮放,所以我相信當一個區域縮放時,它的所有子項和子項都會縮放。我正在尋找一種方法來防止這種影響。

我嘗試使用setManaged(假),並把ImageView的與pane.setScaleShape(假)容器窗格中,但既不工作。 setScaleShape(boolean)看起來像我想要使用的,但我無法弄清楚如何讓它工作。任何有關如何正確使用它的幫助,或對這個問題的另一種解決方案,將不勝感激。

+1

發表[mcve] .. – user1803551

回答

0

你的主要錯誤是將你的形狀直接放入StackPane中。 StackPane是一個佈局窗格,它以特定的方式定位孩子,但是你想要的是絕對定位。所以最簡單的解決方案是將一個簡單的窗格放入您的StackPane中,然後將這些圖形添加到此窗格中。一個窗格不做任何佈局並保留您指定的位置。

相關問題