Partage
  • Partager sur Facebook
  • Partager sur Twitter

AutoScale en C#

Conservation des proportions d'objets

    18 septembre 2017 à 18:53:44

    Bonjour,

    Alors voilà, aujourd'hui je fais appel à vous pour un problème sur lequel je planche et dont je ne trouve pas de solutions...A vrai dire je ne sais même pas si c'est possible :/
    Donc voilà, je voudrais savoir comment faire en sorte à ce que des objets du type Buttons ou TextBox puissent conserver leur proportion et zone d'affichage même lors d'un redimensionnement, parce que en fait mon appli se lance en plein écran, et s'adapte à la taille d'écran de l'utilisateur.

    Sauf que du coup, vu que je travail sur une petite résolution pour y voir claire sans avoir à faire un glissement d'écran pour aller d'un bouton à l'autre, ben du coup, soit ils restent à leur place initiale et avec leur taille de base soit au mieux de ce que j'ai réussis à faire, c'est de leur faire prendre une position proportionnée (et encore) par rapport à leur position initiale, mais ils gardent quand même leur taille de base, donc beaucoup trop petite :/ 

    En tout il y a :
    4 buttons
    1 textbox
    2 label


    Voilà voilà, si vous avez besoin de plus d'infos, je peux vous en fournir, mais je sais vraiment pas comment faire (voir si c'est impossible, dites le moi, j'improviserais)




    • Partager sur Facebook
    • Partager sur Twitter
      18 septembre 2017 à 19:36:31

      Comme à chaque fois que je réponds à cette question, utilise les propriétés Dock et Anchor ainsi que les Layout. Et fait quelques recherches sur google aussi !
      • Partager sur Facebook
      • Partager sur Twitter
      MysteryDash / 100 MPM / Développeur Freelance C#.NET / osu! / PS4 Offline Remote Play
        18 septembre 2017 à 19:48:11

        Hello,

        De quoi on parle ? De WinForms ? De WPF ?

        Il faut réfléchir en pourcentages ou en proportions et non pas en tailles en pixels.  
        Ainsi ton interface s'adapte toute seule à la taille de la fenêtre.

        • Partager sur Facebook
        • Partager sur Twitter
        Si un message vous a aidé, n'oubliez pas le +1 et de passer votre sujet en "Résolu" ! :)
          18 septembre 2017 à 20:13:52

          Rebonjour, oui désolé je parle ici de Winforms, et pour ce qui est de Dock et Anchor, ça déforme juste l'objet, rien de plus :/ Et j'ai déjà cherché sur Google, c'est pour ça que je fais appel à vous.

          Sinon tu veux dire quoi par "Il faut réfléchir en pourcentages ou en proportions et non pas en tailles en pixels.  Ainsi ton interface s'adapte toute seule à la taille de la fenêtre." ? A vrai dire, je cherche un possible code pour faire ça, un pote m'avait passé un code du genre: 
          Ajouter d'abord
          int bux = 0;
          int buy = 0;
          Puis créer un timer d'intervalle 100 et ajouter pour chaque objets 
          buy = this.Height; bux=this.Width; buy = buy/2; bux=bux/2; button1.Location = new Point(bux, buy);
          en modifiant la valeur "button1"
          et enfin ajouter a Form
          buy = this.Height; bux=this.Width;
          Mais malheureusement ça ne fonctionne pas trop, déjà les objets déplacés se retrouvent presque tous au même endroit en en plus au milieu de l'écran presque, du plus ils ne changent pas de taille


          EDIT:

          Bon je vois ce que Mystery Dash voulait dire par Anchor et Dock, mais ça ne conserve pas les proportions, ça garde la même taille, donc autant te dire que quand tu travailles sur du 784*411 et que tu passes sur du 1920*1080, ça fait d'un coup très petit

          -
          Edité par ToxicStepRecord 18 septembre 2017 à 20:42:51

          • Partager sur Facebook
          • Partager sur Twitter
            18 septembre 2017 à 21:18:21

            Tu vas vraiment trouver des gens utilisant du 784*411 aujourd'hui.... ?

            Si tes polices d'écriture sont dans une taille correcte (11/12), alors le changement de résolution importera peu.

            Si tu as si peu d'éléments sur ta fenêtre qu'ils sont élargis à ce point alors tu devrais juste empêcher la fenêtre d'être redimensionnée.

            Envoie une capture d'écran de ta fenêtre actuelle pour qu'on se fasse une idée.

            -
            Edité par MysteryDash 18 septembre 2017 à 21:18:42

            • Partager sur Facebook
            • Partager sur Twitter
            MysteryDash / 100 MPM / Développeur Freelance C#.NET / osu! / PS4 Offline Remote Play
              18 septembre 2017 à 22:01:24

              Non mais comme expliqué plus haut, je travaille sur du 784*411 pour ne pas à avoir à scroll tout le temps pour voir un bouton ou un autre. Ensuite, je n'utilise pas de police d'écriture, elle s'adapte au TextBox. Ensuite, je souhaite que cette fenêtre soit lancée en plein écran, et ça fonctionne, elle s'adapte ainsi à toutes les résolutions. Je bosse en fait sur un petit projet pour un pote, on fait un concours de progra entres potes, et là je bosse sur une fenêtre en genre d'énigme, du coup en plein écran pour l'instant ça donne ça (photo 1) alors que ça devrait ressembler à la photo 2 (pas d'inquiétudes, je sais que la fenêtre fait louche, mais ce n'est pas un virus ;))
               

              EDIT: 

              Ouuuuups, la grosse faute d'anglais, j'ai mis "fine" au lieu de "find" xD

              -
              Edité par ToxicStepRecord 18 septembre 2017 à 22:56:31

              • Partager sur Facebook
              • Partager sur Twitter

              AutoScale en C#

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown