Silverlight Grid不会填充

时间:2011-09-28 03:37:19

标签: silverlight prism

我的边框控件定义如下:

<Border Background="Azure" Grid.Row="2">
    <ContentControl Width="Auto" Height="Auto" Regions:RegionManager.RegionName="MainContent" />
</Border>

我可以在整个区域看到Azure背景

现在我将我的视图注入此ContentControl(它是PRISM)。视图看起来像这样..

<toolkit:BusyIndicator IsBusy="{Binding IsBusy}">
        <Grid Margin="10" DataContext="{Binding}"
                infBehaviors:RegionPopupBehaviors.CreatePopupRegionWithName="ViewPopup"
                infBehaviors:RegionPopupBehaviors.ContainerWindowStyle="{StaticResource PopupStyle}">
            <!--Define rows in a grid-->
            <Grid.RowDefinitions>
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <!--Define columns in a grid-->
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="120"/>
            <ColumnDefinition Width="200" />
            <ColumnDefinition Width="65" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

现在当我将新的UserCOntrol放在我的网格顶部时 - 我希望它覆盖整个“Azure”区域。但我只看到覆盖了我的数据输入表格的大小。似乎第二个网格没有“填充”ContentControl - 只需要占用所需的空间。我该怎么强迫它填充?我设置了自动列和行 - 认为它们会伸展但没有..

编辑: Silverlight Spy的屏幕截图..它显示来自Shell的ContentControl覆盖了整个区域,但网格内部完全忽略了我的“*”大小。它也可以在设计模式下工作 - 它延伸到整个设计区域......

enter image description here

1 个答案:

答案 0 :(得分:1)

确保将ContentControl的Horizo​​ntalContentAlignment和VerticalContentAlignment设置为Stretch。 ^ _ ^

e.g。

<Border Background="Azure" Grid.Row="2">
    <ContentControl HorizontalContentAlignment="Stretch" 
    VerticalContentAlignment="Stretch" 
    Width="Auto" Height="Auto" Regions:RegionManager.RegionName="MainContent" />
</Border>