我有一个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>
(不是我的实际代码,只是一个示例,看看如何删除组件以填充留下的空间)
当我单击button1时,它会删除最后一个按钮,但不会调整剩余按钮的大小以占用空间。 on_click
方法将按钮的可见性设置为Collapsed。我以为这把它从视觉树中删除了?
我想要的是让游戏区域(我有2个,一个肖像和一个全景页面)充满控件和屏幕底部的区域作为广告空间(480x80) 。当用户购买完整产品时,广告被移除,并且广告上方的游戏空间占据整个屏幕空间并自行调整大小。这可能吗?
答案 0 :(得分:1)
这里有两点需要注意:
StackPanel位于网格的第一行,其高度为“自动”。当它处于“自动”状态时,它不允许其内容使用剩余空间。它只是为内容的高度提供空间。不仅如此。因此,将Row的高度设为*并将第二个Row的高度设置为auto(如果不使用则将其删除)。如果第2行未设置为auto,则两行将共享相等的空格/高度。
StackPanel不会将其内容传播到所有可用空间。它类似于Grid“auto”。因此,将其替换为Grid并添加除了最后一行之外具有*作为高度的行。最后一行的高度应该是自动的,因为它必须折叠(*总是为行分配空间的百分比)。
试试这个:
<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>
希望这会有所帮助。享受编码:)