2014-02-17 153 views
2

我想根據上一個堆棧高度更改堆棧邊距,例如StackPannel1的高度爲20,stackpannel2的邊距爲0,stackpannel1 + 5,0,0的高度。我該如何解決我的問題?以編程方式更改頁邊距

+2

也許這樣? http://stackoverflow.com/questions/5611658/change-margin-programmatically-in-wpf-c-sharp – Kek

+0

已經試過這個,但那不是我想要的:( – szoszk

+0

那麼,那你想要什麼? –

回答

3

這應該做的工作:

stackpannel2.Margin = new Thickness(0, StackPannel1.ActualHeight + 5, 0, 0); 

確保在適當的時候(即當ActualHeight實際上已經設置或由框架改變),例如運行這段代碼以響應FrameworkElement.SizeChanged事件。

+0

它沒有任何東西,它保持在原來的位置。我認爲它是在正確的位置該代碼因爲當我只輸入0,200,0,0它應該做什麼 – szoszk

+0

@szoszk代碼何時運行?也許'StackPannel1.ActualHeight'爲0,因爲它尚未被佈置,請使用調試器 –

+0

初始化活動後,我會檢查它 – szoszk

0

你必須刷新..解決方案stackpannel2.Margin = new Thickness(0, StackPannel1.ActualHeight + 5, 0, 0);對我來說似乎很好

相關問題