2014-02-17 116 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);对我来说似乎很好

相关问题