我如何使按钮移动,因为它旁边的标签改变宽度
本文关键字:标签 改变 何使 按钮 移动 因为 | 更新日期: 2023-09-27 18:15:15
我觉得这是我可以用网格(或者可能是水平堆栈面板)做的事情,但我想知道是否有更简单的方法来做到这一点。这是在Silverlight页面上,尽管我假设WPF的解决方案也会工作得很好。在顶部,我有一个位于页面中心的标签,用于显示当前页面的标题。这个标签的左边是一个按钮。因为标签的文本可以是任何东西,当它仍然居中时,宽度可以是400到50像素。是否有一个简单的方法,使按钮始终是20像素的标签的左手边的左边?
以下XAML是这样做的:
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Content="Button"
HorizontalAlignment="Right" Margin="0,0,20,0"/>
<Label Grid.Column="1" Content="Some Text in a Label"/>
</Grid>
</StackPanel>
当标签的宽度改变时,网格将重新定位按钮。不需要经常调用更新方法
你应该能够调用一个函数来定位你的按钮。在每次调整标签大小后调用此方法。
public void RepositionButton(int horizontalSpacing)
{
int newXPos = lblLabel.Position.X - btnButton.Width - horizontalSpacing;
int newYPos = lblLabel.Position.Y;
btnButton.Position = new Point(newXPos, newYPos);
}
如果需要垂直居中,您可能需要修改Y位置的数学。