如何将WP Panorama项目修改为全屏

时间:2012-03-29 06:48:49

标签: silverlight windows-phone-7 layout panorama-control

我正在尝试修改PanoramaItem内容大小,使其没有边距并拉伸整个屏幕宽度/高度。到目前为止,我没有运气试图修改模板的副本。负边距可以处理左/上,但下一个全景项目总是从右边缘偷看,即使我设法拉伸全景项目,下一个全景项目也会在屏幕右侧重叠。

任何想法如何修改全景图,以便实际的panoramaitem占据整个屏幕(800x480),以下全景项目总是距离上一个panoramaitem左侧480px,这样您就看不到下一个项目的一部分

为什么我要修改全景图?因为控件具有内置功能,可以完成我想要它做的所有事情(我正在构建一个支持轻弹手势的全屏图片查看器)。我只想让panoramaitem全屏,然后将图像放在容器的整个尺寸内(全屏)

全景架构 http://msdn.microsoft.com/en-us/library/ff941126%28v=vs.92%29.aspx

2 个答案:

答案 0 :(得分: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}"

答案 1 :(得分:2)

您可以尝试使用带有空标题和标题和项目标题而不是全景的数据透视表。 它也会支持电影。