2014-01-22 29 views
0

我有一個WPF窗口,在背景中有一個圖像作爲畫布。這是一艘海盜船的照片。我想要在圖像上的某些點上附加按鈕,即使窗口大小發生改變,它也會保持不變。用固定的窗口大小,這很好。我可以在所有按鈕與圖像上的相同位置保持聯繫的地方選擇熱點嗎?或者我使用按鈕的百分比定位?如何保持我的按鈕在畫布上的位置相同?

這可能是WPF的很多要求。

這些按鈕位於畫布上方。

感謝

回答

2

根據窗口大小假設你的背景圖像綿延,我會使用一個Converter和基於百分比設置Canvas.TopCanvas.Left

你既可以自己編碼IValueConverter接受的Canvas.HeightCanvas.Width和ConverterParameter確定你想要的價值的百分比,或者我有一個非常通用的Math Converter on my blog你是免費的,如果你喜歡使用。

<Button Canvas.Top="{Binding ElementName=MyCanvas, Path=ActualHeight, Converter={StaticResource MathConverter}, [email protected]*.25}" 
     Canvas.Left="{Binding ElementName=MyCanvas, Path=ActualWith, Converter={StaticResource MathConverter}, [email protected]*.25}" 
     ... /> 

(我忘了,如果Height/WidthActualHeight/ActualWidth是更精確的值 - 你可能需要測試一個)

+0

Rachel ..這正是我所需要的。我已經使用了你的轉換器和你的確切的xaml代碼。當我調整窗口大小時,這些按鈕保持在我想要的確切點上。非常感謝! –

0

你可以採取的帆布和按鈕的一個共同的祖先,給它一個固定的大小,幷包裝在一個Viewbox。然後,您可以讓Viewbox負責縮放。整個場景 - 按鈕,圖像和其他任何東西 - 將被縮放在一起,因此您不需要手動調整任何定位。

相關問題