IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Centrer verticalement une fenêtre modale sur l'écran


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut Centrer verticalement une fenêtre modale sur l'écran
    Bonjour à tous

    J'utilise Silverlight 3 et je ne parviens pas à centrer verticalement une fenêtre modale sur mon écran. J'arrive à la centrer sur ma page XAML, mais si cette page prend 5 écrans en hauteur et que je me trouve au 2ème écran en haut, j'aimerais que la fenêtre modale apparaisse au milieu du 2ème écran (où je me trouve), et non au milieu du 3ème écran.

    D'un point de vue code, j'en suis là :
    - Page XAML : embarque le UserControl, avec la visibilité Visible ou Collapsed.

    - UserControl XAML :
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <UserControl xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
    ...
    ...
      <Grid x:Name="LayoutRoot">
        <Border Width="300" Height="300">
          ...
          ...
        </Border>
      </Grid>
    </UserControl>
    Juste pour vous guider, si je met VerticalAlignment="Top" sur le Border, la fenêtre modale apparaît tout en haut de la page XAML.

    Merci de votre aide !

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Hello,

    Je suis désolé mais la description de ton problème est incompréhensible

    Le problème vient de la position externe de ta fenêtre ou du positionnement interne ?

  3. #3
    Membre actif
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Ah, désolé Samuel
    Pour faire plus clair, j'illustre mon problème avec une image.



    L'image montre la popup bleue qui apparaît en bas. La popup est verticalement centrée sur la page (il faut regarder la scrollbar pour comprendre ce que je dis), mais pas centrée sur l'écran. Je voudrais qu'elle soit centrée sur l'écran.

    Merci d'avance

  4. #4
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Oui c'est plus clair merci

    Le comportemement naturel d'une fenetre est de se placer au centre de la page. Si ta page fait plusieurs écran tu vas avoir effectivement un problème.

    Le plus simple, serait de reconsidérer la taille de ta page et non le placement de ta fenetre.

    Ainsi si tu mets le contenu de ta page dans un ScrollViewer c'est le scrollviewer qui grandira et pas ta page. donc plus de problème de centrage de fenetre :


    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Grid x:Name="LayoutRoot">
    <ScrollViewer>
        <!-- ici le contenu original de LayoutRoot -->
    </ScrollViewer>
    </Grid>

  5. #5
    Membre actif
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    J'ai pas bien compris ce que tu expliques, mais j'ai quand même essayé ta solution. Ca me rajoute une scrollbar dans laquelle il n'y a jamais d'ascenseur (peu importe la quantité de données en "hauteur"), et la popup réapparaît invariablement au milieu de la page, et non de l'écran

    En fait, je peux formuler ma demande plus simplement : comment placer un UserControl en plein milieu de la page, et qui flotte en restant au milieu même si je scroll ma page en haut ou en bas ?
    En HTML il suffit de jouer avec position-absolute

    Merci d'avance

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    En mettant ton controle par dessus le scrollviewer et pas dedans.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Grid>
       <ScrollViewer>
          ...
       </ScrollViewer>
       <local:TonUserControl />
    </Grid>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Centrer une fenêtre modale
    Par onesat dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/05/2014, 15h57
  2. [AC-2010] Ouvrir fenêtre modale sur le même écran que l'application
    Par jfchappuis dans le forum Access
    Réponses: 1
    Dernier message: 17/01/2014, 00h46
  3. Perte de focus sur une fenêtre modale
    Par yonpo dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 07/01/2011, 14h32
  4. Réponses: 4
    Dernier message: 20/02/2007, 15h34
  5. [PowerBuilder] Récupérer la main sur une fenêtre modale
    Par jpdar dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/06/2006, 14h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo