我想在Grid中显示两列。第一个是一个文本块,有时比用于保存它的行长。第二个是按钮。有没有办法给文本块尽可能多的空间,同时仍然留下按钮立即去的空间?
当我使用以下代码时,文本块有时会将按钮推到网格的可视区域之外。
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Description}" HorizontalAlignment="Stretch" />
<Button Margin="4,0" Height="0" Width="16" Grid.Column="1" MinWidth="20" VerticalAlignment="Center" />
</Grid>
我已经尝试设置第一列定义Width =“*”,但是按钮总是在行的最后,当我想要它在文本旁边时。有什么建议吗?
这是在Silverlight 4中。
感谢。
修改 我希望在用户更改窗口大小时调整网格大小,因此对网格大小设置硬限制并不好。话虽这么说,我可以在TextBlock加载和窗口改变大小时手动设置后面代码中的MaxWidth。它很笨重,但它确实有效。
答案 0 :(得分:0)
以下一定会有效..
<Grid x:Name="LayoutRoot" Background="White" Width="250">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock x:Name="textBlock" Grid.Column="0" Text="Text Box" VerticalAlignment="Top"/>
<Button x:Name="button" Grid.Column="1" Content="Button" VerticalAlignment="Top" Width="60"/>
</Grid>
在构造函数中将以下行添加到xaml.cs文件中。
public MainPage()
{
InitializeComponent();
textBlock.MaxWidth = LayoutRoot.Width - button.Width;
}
如果有任何问题,请告诉我。
谢谢..