Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Ridimensionamento schermo C#/VisualStudio
Forum - C# / VB.NET - Ridimensionamento schermo C#/VisualStudio

Avatar
DavideV93 (Normal User)
Newbie


Messaggi: 1
Iscritto: 09/04/2020

Segnala al moderatore
Postato alle 16:27
Giovedì, 09/04/2020
Ciao a tutti, vi pongo il mio problema:
Attraverso la mia applicazione in VisualStudio ho implementato Screen.PrimaryScreen.Bounds che mi permette di ridimensionare lo schermo della mia applicazione alle dimensioni dello schermo del pc.

Questa funzione però non funziona quando, se applicato a schermi che hanno la possibilità di ingrandire o ridurre le icone dell' X% (125% - 150% - 175%).

Tramite Screen.PrimaryScreen.Bounds, le dimensioni rilevate rimangono inalterate.

Voi avete dei consigli o qualche suggerimento per poter rimediare a questo problema? ci sono modi per leggere questa percentuale in qualche maniera?

Codice sorgente - presumibilmente C# / VB.NET

  1. //salvo la resoluzione del monitor
  2.  Rectangle resolution = Screen.PrimaryScreen.Bounds;
  3.  InitializeComponent();



:-?

Ultima modifica effettuata da DavideV93 il 09/04/2020 alle 17:20
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 19:16
Giovedì, 09/04/2020
Mi sono già scontrato con il problema legato alla percentuale di ingrandimento, dovevo scrivere dei testi centrati in delle picturebox, e se l'utente cambiava la percentuale di ingrandimento la centratura non era corretta.
Ho risolto inserendo in una variabile un offset calcolato misurando un testo campione. il codice è in C#, scrive con un font noto: "2048" in un rettangolo e ne misura la dimensione, dalla larghezza si desume la percentuale di ingrandimento impostata dall'utente.
Codice sorgente - presumibilmente C#

  1. public object ControlloSize(Graphics gR)
  2.             {
  3.                 Int16 a = 12; // testo 200%
  4.                 // rettangolo immaginario di controllo
  5.                 SizeF RettangoloDiControllo = new SizeF(300.0F, 100.0F);
  6.                 // imposto il formato della stringa, direzione, destrasinistra ecc
  7.                 StringFormat FormatoStringa = new StringFormat();
  8.                 FormatoStringa.FormatFlags = StringFormatFlags.NoWrap;
  9.                 // ritorno misura.
  10.                 SizeF DimensioneStringa = new SizeF();
  11.                 int QuantiCaratteri;
  12.                 int QuanteRighe;
  13.  
  14.                 using (Font Carattere = new Font("Arial", 26, System.Drawing.FontStyle.Bold))
  15.                 {
  16.                     DimensioneStringa = gR.MeasureString("2048", Carattere, RettangoloDiControllo, FormatoStringa, out QuantiCaratteri, out QuanteRighe);
  17.                 }
  18.  
  19.                 if (DimensioneStringa.Width < 95)
  20.                 {
  21.                     a = 0; // testo 100%
  22.                 }
  23.                 else if (DimensioneStringa.Width < 120)
  24.                 {
  25.                     a = 4; // testo 125%
  26.                 }
  27.                 else if (DimensioneStringa.Width < 150)
  28.                 {
  29.                     a = 7; // testo 150%
  30.                 }
  31.  
  32.                 return a;
  33.             }



Se non trovi un sistema più diretto, questo codice ti può aiutare, la funzione restituisce 0,4,7,12 = 100,125,150,200%

Ultima modifica effettuata da Carlo il 09/04/2020 alle 19:43


in programmazione tutto è permesso
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 20:59
Giovedì, 09/04/2020
Ottimo carlo.
Sarebbe un articolo da pubblicare per la sezione C# di molta utilità


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1344
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 21:36
Giovedì, 09/04/2020
Testo quotato

Postato originariamente da Thejuster:

Ottimo carlo.
Sarebbe un articolo da pubblicare per la sezione C# di molta utilità


Stavo programmando con Mikelius e Ultimo il gioco 2048, e mi occupavo della grafica delle tessere, quando è emerso il problema che se un utente cambiava la percentuale di ingrandimento, i testi nelle grafiche non erano più della dimensione voluta, in velocità ho inventato questa soluzione, ma credo che ci sia un sistema più diretto, windows sa come è impostato l'ingrandimento, da qualche parte c'è scritto.

Ultima modifica effettuata da Carlo il 09/04/2020 alle 21:38


in programmazione tutto è permesso
PM Quote