2010-11-27 4 views
0

Je veux cacher le titre <controls:Panorama Title="myTitle" Style="{StaticResource customStyle}"> en mode paysagePanorama Hiding Titre en mode paysage [wp7]

J'ai appliqué un style personnalisé pour elle (code ci-dessous) et d'essayer de le faire (basé sur le nom dans le style personnalisé), mais je reçois erreur le nom TitleLayer n'existe pas dans le contexte actuel:

if ((e.Orientation == PageOrientation.LandscapeRight) || (e.Orientation == PageOrientation.LandscapeLeft)) 
{ 
    TitleLayer.Visibility = Visibility.Collapsed; 
} 

///////////////// code supplémentaire pour la recherche //// ///////////////////

Pour cela, j'ont appliqué un style personnalisé:

<phone:PhoneApplicationPage.Resources> 
     <Style x:Key="customStyle" TargetType="controls:Panorama"> 
      <Setter Property="ItemsPanel"> 
       <Setter.Value> 
        <ItemsPanelTemplate> 
         <controlsPrimitives:PanoramaPanel x:Name="panel"/> 
        </ItemsPanelTemplate> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/> 
      <Setter Property="Background" Value="Transparent"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="controls:Panorama"> 
         <Grid> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="auto"/> 
           <RowDefinition Height="*"/> 
          </Grid.RowDefinitions> 
          <controlsPrimitives:PanningBackgroundLayer x:Name="BackgroundLayer" HorizontalAlignment="Left" Grid.RowSpan="2"> 
           <Border x:Name="background" Background="{TemplateBinding Background}" CacheMode="BitmapCache"/> 
          </controlsPrimitives:PanningBackgroundLayer> 
          <controlsPrimitives:PanningTitleLayer x:Name="TitleLayer" CacheMode="BitmapCache" ContentTemplate="{TemplateBinding TitleTemplate}" Content="{TemplateBinding Title}" FontSize="187" FontFamily="{StaticResource PhoneFontFamilyLight}" HorizontalAlignment="Left" Margin="10,-76,0,9" Grid.Row="0"/> 
          <controlsPrimitives:PanningLayer x:Name="ItemsLayer" HorizontalAlignment="Left" Grid.Row="1"> 
           <ItemsPresenter x:Name="items"/> 
          </controlsPrimitives:PanningLayer> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </phone:PhoneApplicationPage.Resources> 
+0

La commande panoramique n'est pas conçue pour être utilisée en mode paysage. Quelle est votre raison de vouloir le faire? –

+1

@Matt Flexibilité, même si mon application est la mieux adaptée pour le portrait, mais en tant que développeur, je devrais également honorer les appareils avec clavier coulissant paysage. – Shishant

Répondre

2

Voici comment vous pouvez masquer le titre Panorama:

Grid grid = VisualTreeHelper.GetChild(panorama, 0) as Grid; 
FrameworkElement titleLayer = grid.FindName("TitleLayer") as FrameworkElement; 
titleLayer.Visibility = System.Windows.Visibility.Collapsed; 

Cependant, je recommande la lecture sur les lignes directrices de conception de WP7. Il semble que vous utilisiez le Panorama de manière à ne pas l'utiliser. Les panoramas sont destinés uniquement au portrait. En règle générale, les applications ne doivent pas avoir beaucoup de champs de saisie de texte sur les panoramiques, par conséquent, il est préférable de ne pas prendre en charge l'aménagement paysage pour les claviers à coulisse.

+0

N'a pas essayé, mais il semble que cela va fonctionner, Merci. – Shishant