我目前正在开发一款兼容横向和纵向布局的应用。当方向从纵向变为横向时,我在处理旋转广告时遇到一些麻烦。我可以设置一个网格,这样广告就可以垂直。我可以旋转它但是当我这样做时它会搞砸。
我瞄准垂直的原因是它为我保留了最好的房地产。
我不确定我能为我的情况提供多少细节,我只想让广告旋转90度,使其适合横向屏幕的“左或右”。但旋转迫使它的网格仍然是一定的宽度。然后我在更改函数中放入一些控件来强制网格重新调整大小,但是在旋转之后,添加不会直接位于其网格中。这有什么建议或指示吗?非常感谢提前。
另外,我想要有两个简单地浮动在页面上的广告元素(不在网格中)。并根据方向显示/隐藏每个方向,但当我想到它时,这听起来很愚蠢。
答案 0 :(得分:1)
我想我会告诉您,我创建了一个控件来处理手机的旋转并保持广告不动。有关详细信息,请按此SO answer。
答案 1 :(得分:0)
使用具有正常宽度和高度的PubCenter广告,然后应用变换将其旋转90度。
答案 2 :(得分:0)
我无法找到帮助我的解决方案。我意识到我想要的是最后评论的帖子实现了;保持广告的轮换方向。
要完成此操作,可以使用LayoutTransform,但它们在WP8中不可用。最初我有浮动菜单,可以在旋转变化时打开和关闭,但在不同尺寸的屏幕上会很麻烦。
我发现最干净的蛮力解决方案是制作3x5(行主要)网格布局。我的主页面位于最中心的网格中,广告位于左侧,右侧和底部。最后,最左边和最右边的网格有两个填充空间:
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto "/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid Grid.Row="1" Grid.Column="2">
<phone:Pivot x:Name="ContentPanel">
...
</phone:Pivot>
</Grid>
<Grid Name="AdBottom" Grid.Row="2" Grid.Column="2">
...
</Grid>
<Grid Name="AdRight" Grid.Row="1" Grid.Column="3" MaxWidth="80">
<adduplex:AdControl x:Name="adDuplexAdRight" AppId="?????"
RenderTransformOrigin="0.5,0.5"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="-200,0" Visibility="Collapsed">
<adduplex:AdControl.RenderTransform>
<CompositeTransform Rotation="90"/>
</adduplex:AdControl.RenderTransform>
</Grid>
<Grid Name="AdLeft" Grid.Row="1" Grid.Column="1" MaxWidth="80">
... <As Above, just negated>
</Grid>
<Grid Name="FillerLeft" Grid.Row="1" Grid.Column="0" MinWidth="80" Visibility="Collapsed">
</Grid>
<Grid Name="FillerRight" Grid.Row="1" Grid.Column="4" MinWidth="80" Visibility="Collapsed">
</Grid>
</Grid>
填充元素及其最小宽度的原因是为了帮助边缘溢出。没有它,你可以使用Rendertransform来旋转元素,但是当你试图将它的容器缩小到你想要的大小时,它就会错误地出现。这是因为在渲染之后旋转发生,因此如果没有那些额外的填充列以允许溢出,则元素在旋转时会被切片。
因此,执行溢出并扩展广告的边距允许它显示为锁定在网格而不是浮动。然后,我管理在旋转事件中切换广告的可见性和填充区域。
这是我用过的最简单的解决方案。其他人可以搜索合并Silverlight LayoutTransformer,如here所示。或者,如果使用付费工具包中的一个。到目前为止,这对我的简单应用程序起作用。