2010-10-27 20 views
0

Salut J'ai créé une popup en utilisant la classe Popup dans silverlight. J'ai écrit une classe de type UserControl et j'ai ajouté cette commande usercontrol à la popup en utilisant la méthode Child de la classe Popup.L'orientation du menu contextuel n'est pas correcte. Ses 90 degrés ont tourné

Voici le code XAML de ma classe UserControl

<UserControl x:Class="MyProject.PopupWindowContent" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" 
FontFamily="{StaticResource PhoneFontFamilyNormal}" 
FontSize="{StaticResource PhoneFontSizeNormal}"    
Foreground="{StaticResource PhoneForegroundBrush}" UseLayoutRounding="False" Cursor="Hand"> 

    <Grid Height="355" Name="grid1" Width="527.5"> 
     <Image Height="355" HorizontalAlignment="Left" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="527" Source="/MyProject;component/dialog_bg.png" UseLayoutRounding="True" /> 
     <Image Height="194" HorizontalAlignment="Left" Margin="13,87,0,0" Name="image2" Stretch="Fill" VerticalAlignment="Top" Width="502.5" Source="/MyProject;component/dialog_box_1.png" /> 
     <Image Height="46" HorizontalAlignment="Left" Margin="25.25,35.25,0,0" Name="image3" Stretch="Fill" VerticalAlignment="Top" Width="49.75" Source="/MyProject;component/dialog_logo.png" /> 
     <TextBlock Height="40" HorizontalAlignment="Left" Margin="153.25,38.75,0,0" Name="popupHeading" Text="TextBlock" VerticalAlignment="Top" Width="212" TextAlignment="Center" FontWeight="Bold" FontSize="26" /> 
    <Button Content="Submit" Height="71" HorizontalAlignment="Left" Margin="130.75,265.75,0,0" Name="buttonOne" VerticalAlignment="Top" Width="132.25" BorderThickness="1" FontSize="18" Foreground="Black"> 
      <Button.Background> 
       <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
        <GradientStop Color="White" Offset="0" /> 
        <GradientStop Color="#FF06EF06" Offset="1" /> 
       </LinearGradientBrush> 
      </Button.Background> 
     </Button> 
     <Button BorderThickness="1" Content="Cancel" FontSize="18" Foreground="Black" Height="71" HorizontalAlignment="Right" Margin="0,265.75,142,0" Name="buttonTwo" VerticalAlignment="Top" Width="132.25"> 
      <Button.Background> 
       <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
        <GradientStop Color="White" Offset="0" /> 
        <GradientStop Color="#FFEF0606" Offset="1" /> 
       </LinearGradientBrush> 
      </Button.Background> 
     </Button> 
    <TextBox Height="162.75" HorizontalAlignment="Left" Margin="18,108.25,0,0" Name="popupBody" Text="TextBox" VerticalAlignment="Top" Width="480.5" Background="{x:Null}" FontSize="20" Foreground="White" BorderThickness="0" /> 
</Grid> 

Je mets cette PopupWindowContent à mon pop-up en utilisant le code suivant dans mon fichier XAML

 Popup popUnWin = new Popup(); 
     popUnWin.Child = new PopupWindowContent(); 
     popUnWin.IsOpen = true; 

Le problème est que lorsque je exécuter ce code, l'orientation de la popup est en fonction du portrait mais mon application est le paysage. La fenêtre contextuelle semble donc pivotée de 90 degrés. Quelqu'un peut-il me dire comment je peux le réparer?

Cordialement

Répondre

0

Vous définissez SupportedOrientation sur chaque page de votre application ou tout simplement la première? Je pense qu'il y a quelque chose de bizarre que si vous le placez sur votre première page, certaines choses le respecteront, mais d'autres (comme le popup) regardent les orientations supportées de la page active?

+0

Oui, j'ai ajouté SupportedOrientations = "Paysage" sur la page en cours sur laquelle le popup est affiché. J'ai essayé de faire pivoter le popup entier. Ses travaux mais puisque j'ai une zone de texte sur le popup, quand j'essaye d'entrer quelque chose dans cette popup, le clavier apparaît dans la vue de portrait :-( – Aqueel

0

J'ai vu quelques suggestions d'ajouter le popup à l'arbre visuel. J'ai essayé de l'ajouter à mon xaml et il ne tournait toujours pas, mais vous voudrez peut-être essayer.

0

Ne faites pas pivoter la fenêtre contextuelle, mais placez une bordure dans la fenêtre contextuelle et chargez le contenu dans la bordure.

J'ai eu à travailler comme ceci:

//In .xaml 
<Popup x:Name="myPopup"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="480" /> 
     </Grid.RowDefinitions> 

     <Border x:Name="popupBorder"/> 
    </Grid> 
</Popup> 

//In .xaml.cs 
popupBorder.Child = new MyPopupPage(); //MyPopupPage is the "Windows Phone Landscape Page" 
myPopup.IsOpen = true; 
2

je trouve que si vous mettez le menu contextuel dans le code XAML de la page, l'orientation se fait correctement.