如何将 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 大小调整为全屏?

如何使用 Android API 将相机预览大小设置为全屏?

在 SwiftUI 中,如何将视频循环添加为全屏背景图像?