Xaml 移除广告时调整StackPanel的大小以适应屏幕

Xaml 移除广告时调整StackPanel的大小以适应屏幕,xaml,windows-phone-8,user-controls,Xaml,Windows Phone 8,User Controls,我有一个Windows Phone 8应用程序,在屏幕底部有广告 当我删除广告时,我想用游戏屏幕内容替换它所占据的区域。我已经搜索过了,但还没有找到解决方案,我相信这是我错过的简单的东西 作为示例,请参见以下代码: <!--Panorama item one--> <phone:PanoramaItem Header="Level Stastics"> <Grid Margin="0,0,0,88" > <Grid.RowDef

我有一个Windows Phone 8应用程序,在屏幕底部有广告

当我删除广告时,我想用游戏屏幕内容替换它所占据的区域。我已经搜索过了,但还没有找到解决方案,我相信这是我错过的简单的东西

作为示例,请参见以下代码:

<!--Panorama item one-->
<phone:PanoramaItem Header="Level Stastics">
    <Grid Margin="0,0,0,88"  >
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <StackPanel Height="Auto" Grid.Row="0" Margin="0,0,0,-30" >
            <Button x:Name="button1" Content="Click Me" Click="button1_Click"/>
            <Button Content="last Button remove" Click="Button_Click"/>
            <Button Content="Button"/>
            <Button Content="Button"/>
            <Button Content="Button"/>
            <Button Content="Button"/>
            <Button Content="Button"/>
            <Button x:Name="last" Content="last Button"/>
        </StackPanel>
    </Grid>
</phone:PanoramaItem>

(不是我的实际代码,只是一个示例,演示如何删除组件并填充留下的空间)

单击按钮1时,它会删除最后一个按钮,但不会调整其余按钮的大小以占用空间。单击时的
方法将按钮的可见性设置为折叠。我以为这会把它从视觉树上移除


我想要的是有一个游戏区域(其中我有2个,一个肖像和一个全景页面),其中充满了控件,在屏幕底部有一个区域作为广告空间(480x80)。当用户购买完整的产品时,广告会被移除,广告上方的游戏空间会占据整个屏幕空间并自行调整大小。这可能吗?

这里需要注意两件事:

  • StackPanel位于网格的第一行,其高度为“自动”。当它处于“自动”状态时,它不允许其内容使用剩余空间。它只是为内容的高度提供了空间。仅此而已。因此,将该行的高度设置为*并将第二行的高度设置为自动(如果未使用,则将其删除)。如果第二行未设置为“自动”,则两行共享相同的空间/高度

  • StackPanel不会将其内容传播到所有可用空间。它类似于网格“自动”。因此,将其替换为网格,并添加高度为*的行,最后一行除外。最后一行的高度应该是自动的,因为它必须折叠(*始终为该行分配空间的分割百分比)

  • 试试这个:

    <Grid>
    
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="auto" />
    </Grid.RowDefinitions>
    
    <Grid Height="Auto" Grid.Row="0" >
    
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
            <RowDefinition Height="auto" />
        </Grid.RowDefinitions>
    
        <Button Grid.Row="0" x:Name="button1" Content="Click Me" Click="button1_Click" />
        <Button Grid.Row="1" Content="last Button remove" Click="Button_Click" />
        <Button Grid.Row="2" Content="Button" />
        <Button  Grid.Row="3" Content="Button" />
        <Button Grid.Row="4" Content="Button" />
        <Button Grid.Row="5" Content="Button" />
        <Button Grid.Row="6" Content="Button" />
        <Button Grid.Row="7" x:Name="last" Content="last Button" />
    
    </Grid>
    
    
    

    希望这有帮助。享受编码:)