如何将WP全景项目修改为全屏显示

3
我尝试修改PanoramaItem的内容大小,使其没有边距并且可以延伸到整个屏幕宽度/高度。到目前为止,我尝试修改模板的副本都没有成功。负边距可以处理左/上边缘,但是下一个全景项总是从右边缘窥视出来,即使我设法拉伸全景项,下一个全景项仍然会重叠在屏幕的右侧。
有什么想法可以修改全景图,以便实际的全景项占据整个屏幕(800x480),并且以下全景项始终距离前一个全景项的左侧480像素,以便您看不到下一部分。
为什么要修改全景图?因为控件具有内置功能,可以完成我想要做的一切(我正在构建支持轻扫手势的全屏图片查看器)。我只想让全景项全屏,然后在其中放置占据整个容器(全屏)大小的图像。
全景架构 http://msdn.microsoft.com/en-us/library/ff941126%28v=vs.92%29.aspx

使用 PivotItem 而不是 PanoramaItem 似乎是更好的选择。 - TutuGeorge
PivotItem的转换动画不太适合,我还想创建一个单独的视图,使用全景视图,使内容从左右对称地突出,因此找出如何修改默认布局/边距/大小将是很好的。 - Hardev
Hardev,请将下面的答案标记为解决方案,它是一个好答案。 - Robert McLaws
2个回答

8

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以及项目标题,而不是Panorama。它也支持轻扫操作。

这是我在我的应用程序中所做的。 - earthling
正如我之前所说,Pivot并不能完全满足我的需求(全屏很好,但左/右对称的窥视不可行)。我想修改全景内容模板的尺寸/布局,但似乎这是不可能的,或者至少非常困难。 - Hardev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接