如何将 WP 全景项目修改为全屏
Posted
技术标签:
【中文标题】如何将 WP 全景项目修改为全屏【英文标题】:How to modify WP Panorama item to be full screen 【发布时间】:2012-03-29 06:48:48 【问题描述】:我正在尝试修改 PanoramaItem 内容大小,使其没有边距并拉伸整个屏幕的宽度/高度。到目前为止,我没有运气尝试修改模板的副本。负边距可以处理左/上,但下一个全景项目总是从右边缘窥视,即使我设法拉伸全景项目,下一个项目也会在屏幕右侧重叠。
任何想法如何修改全景,以便实际的全景项目占据整个屏幕(800x480),并且以下全景项目始终距离前一个全景项目的左侧 480px,这样您就看不到下一个项目的一部分.
为什么要修改全景图?因为该控件具有内置功能,可以完成我想要它做的所有事情(我正在构建一个支持轻弹手势的全屏图片查看器)。我只是希望全景项目是全屏的,然后将图像放入容器的整个大小(全屏)
全景建筑 http://msdn.microsoft.com/en-us/library/ff941126%28v=vs.92%29.aspx
【问题讨论】:
使用 pivotitem 代替 panormaitem 似乎是一个更好的选择。 PivotItem 过渡动画不太合适,我还想使用全景图创建一个单独的视图,其中左右对称的内容峰值,以便弄清楚如何修改默认布局/边距/大小会很棒。 Hardev 请将下面的答案标记为解决方案,这是一个很好的解决方案。 【参考方案1】:C#
public class PanoramaFullScreen : Panorama
protected override System.Windows.Size MeasureOverride(System.Windows.Size availableSize)
availableSize.Width += 48;
return base.MeasureOverride(availableSize);
XAML
<Style x:Key="PanoramaItemStyle1" TargetType="phone:PanoramaItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="phone:PanoramaItem">
<Grid Background="TemplateBinding Background" Margin="0,0,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ContentControl x:Name="header" CharacterSpacing="-35" ContentTemplate="TemplateBinding HeaderTemplate" Content="TemplateBinding Header" FontSize="66" FontFamily="StaticResource PhoneFontFamilySemiLight" HorizontalAlignment="Left" Margin="12,-2,0,38">
<ContentControl.RenderTransform>
<TranslateTransform x:Name="headerTransform"/>
</ContentControl.RenderTransform>
</ContentControl>
<ContentPresenter Content="TemplateBinding Content" HorizontalAlignment="TemplateBinding HorizontalContentAlignment" Margin="TemplateBinding Padding" Grid.Row="1" VerticalAlignment="TemplateBinding VerticalContentAlignment"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
ItemContainerStyle="StaticResource PanoramaItemStyle1"
【讨论】:
【参考方案2】:您可以尝试将 Pivot 与 null Header 和 Title 以及项目标题一起使用,而不是使用 Panorama。 它也将支持轻弹。
【讨论】:
这是我在我的应用程序中所做的。 正如我之前所说,Pivot 并不能完全满足我的要求(全屏很好,从左/右对称偷看不可行)。我想修改全景内容模板尺寸/布局,但似乎不可能或至少非常困难。以上是关于如何将 WP 全景项目修改为全屏的主要内容,如果未能解决你的问题,请参考以下文章
如何将 QVideoWidget 设置为全屏并在全屏小部件中有音量滑块?
旋转 90 时如何将 TextureView 大小调整为全屏?