2012-03-29 1 views
3

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

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

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

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

+0

использованием pivotitem вместо panormaitem кажется лучшим вариантом. – TutuGeorge

+0

Адаптация перехода PivotItem не подходит, и я также хотел бы создать отдельный вид, используя панораму, где изображение будет располагаться слева и справа симметрично, поэтому выяснение того, как изменить макет/поля/размеры по умолчанию, будет отличным. – Hardev

+0

Hardev, пожалуйста, отметьте ответ ниже как решение, он хороший. – AdvancedREI

ответ

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. И он будет поддерживать флик.

+0

вот что я сделал в своем приложении. – earthling

+0

Как я уже говорил ранее, Pivot не совсем делает то, что я хочу (полноэкранный режим, симметричный, выглядящий слева/справа не выполнимый). Я хотел бы изменить размеры/макет шаблона панорамы, но кажется, что это невозможно или, по крайней мере, чрезвычайно сложно. – Hardev