Как изменить элемент WP Panorama для полноэкранного режима - PullRequest
3 голосов
/ 29 марта 2012

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

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

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

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

Ответы [ 2 ]

8 голосов
/ 24 мая 2013

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 голосов
/ 29 марта 2012

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

...