我有一个将耗尽浏览器的Silverlight应用程序。我希望布局根据窗口的大小调整大小。布局由网格组成。此Grid有一个Canvas,它承载一个Border和其他控件。随着窗口调整大小,Canvas正确调整大小。但是,边框控件似乎是固定大小。如何使Border控件拉伸到Canvas的宽度并在Window调整大小时调整大小?我的代码如下所示:
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Canvas x:Name="myCanvas" Background="Lime">
<Border Canvas.Top="77" Border="Black" BorderThickness="2">
<TextBlock x:Name="myTextBlock" />
</Border>
</Canvas>
</Grid>
感谢您的帮助!
答案 0 :(得分:1)
假设您希望Canvas
绑定到第一个Grid.Column
,那么您可以添加RowDefinitions
然后将边框移动到画布外部,然后以下代码应该可以正常工作。
(仅在WPF中测试)
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="77"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Canvas x:Name="myCanvas" Background="Lime" Grid.RowSpan="2">
</Canvas>
<Border Grid.Row="1" Border="Black" BorderThickness="2" VerticalAlignment="Top">
<TextBlock x:Name="myTextBlock" Text="Happy TEXT" />
</Border>
</Grid>
新内容:<Grid.RowDefinitions>
,Grid.RowSpan="2"
到Canvas,Grid.Row="1"
加VerticalAlignment="Top"
到边框。
添加了用于测试的文本。