Как сделать элемент WP Panorama полноэкранным

Я пытаюсь изменить размер содержимого PanoramaItem, чтобы он не имел полей и растягивал всю ширину / высоту экрана. Пока что мне не удалось изменить копию шаблона. Отрицательные поля могут позаботиться о левом / верхнем, но следующий элемент панорамы всегда выглядывает с правого края, и даже если мне удается растянуть элемент панорамы, следующий элемент перекрывается в правой части экрана.

Любые идеи, как изменить панораму, чтобы фактический элемент панорамы занимал весь экран (800x480), а следующие элементы панорамы всегда находятся на 480 пикселей от левой стороны предыдущего элемента панорамы, поэтому вы не можете видеть часть следующего элемента.

Почему я хочу изменить панораму? Потому что элемент управления имеет встроенную функциональность, которая делает все, что я хочу (я создаю полноэкранное средство просмотра изображений с поддержкой жеста движения). Я просто хотел бы, чтобы элемент панорамы был полноэкранным, а затем помещал изображения внутри, занимая весь размер контейнера (полный экран)

Архитектура панорамы http://msdn.microsoft.com/en-us/library/ff941126%28v=vs.92%29.aspx


person Hardev    schedule 29.03.2012    source источник
comment
использование pivotitem вместо panormaitem кажется лучшим вариантом.   -  person TutuGeorge    schedule 29.03.2012
comment
Анимация перехода PivotItem не так подходит, и я также хотел бы создать отдельное представление, используя панораму, где пики контента симметрично выходят как слева, так и справа, поэтому было бы здорово выяснить, как изменить макет / поля / размеры по умолчанию.   -  person Hardev    schedule 29.03.2012
comment
Hardev, пожалуйста, отметьте ответ ниже как решение, это хорошее решение.   -  person Robert McLaws    schedule 31.01.2014


Ответы (2)


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}"
person iekwei    schedule 24.05.2013

Вы можете попробовать использовать Pivot с пустыми заголовками и заголовками, а также заголовки элементов вместо Panorama. И он также будет поддерживать щелчок.

person Ponf    schedule 29.03.2012
comment
это то, что я сделал в своем приложении. - person earthling; 29.03.2012
comment
Как я сказал ранее, Pivot не совсем выполняет то, что я хочу (полноэкранный режим - это нормально, симметричный просмотр слева / справа невозможен). Я хотел бы изменить размеры / макет шаблона содержимого панорамы, но мне кажется, что это невозможно или, по крайней мере, чрезвычайно сложно. - person Hardev; 30.03.2012