Xaml 移除广告时调整StackPanel的大小以适应屏幕
我有一个Windows Phone 8应用程序,在屏幕底部有广告 当我删除广告时,我想用游戏屏幕内容替换它所占据的区域。我已经搜索过了,但还没有找到解决方案,我相信这是我错过的简单的东西 作为示例,请参见以下代码: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
<!--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>
希望这有帮助。享受编码:)