Differenze di risoluzione di un'app tra fase di progettazione e a runtime con visual basic

Carmelo Barba 25 Punti di reputazione
2024-07-27T18:07:08.41+00:00

Un saluto a tutti.

Chiedo aiuto su un problema che sto riscontrando nello sviluppo di un'app in VB e nello specifico una differenza di risoluzione dei controlli tra la fase di progettazione e a runtime.

Preciso che il problema viene riscontrato quando utilizzo il notebook, allorchè già Visual Studio mostra il messaggio seguente, quando sono in fase di progettazione dei form/controlli: 'Il ridimensionamento sul display principale è impostato su 125%', che appare quello più ottimale (corrisponde alla risoluzione impostata sul display del PC)

Sembra, però, che quando lancio l'app, i controlli vengano poi impostati con un ridimensionamento al 100% (verificato in fase di esecuzione tramite le lettura della proprietà 'DeviceDpi' del form visualizzato, che assume un valore di 96 dpi, che dovrebbe corrispondere per l'appunto ad un ridimensionamento al 100%), con un conseguente peggioramento della resa visiva dei vari controlli.

Con le immagini seguenti si può comprendere meglio la questione:

Progettazione.png

Runtime.png

Come si può notare, mentre in fase di progetto i caratteri sotto il pulsante oltrepassano il bordo destro di quest'ultimo, a runtime si fermano molto prima del bordo destro.

Preciso che il problema, che è più impattante quando mi trovo a collocare svariati controlli sul form, persiste anche se modifico la proprietà AutoScaleMode (che nell'esempio delle figure allegate è impostata a 'Font', ma, anche se con differenze, permane se imposto 'Dpi' o gli altri due valori ammessi)

C'è qualche proprietà che devo impostare al progetto per mantenere la risoluzione dei controlli coerenti col il dimensionamento del display al 125% a runtime, così come si riscontra in fase di progettazione.

Ringrazio anticipatamente.

Carmelo

VB
VB
Linguaggio di programmazione orientato agli oggetti sviluppato da Microsoft implementato in .NET Framework. Precedentemente noto come Visual Basic .NET.
17 domande
Microsoft Q&A
Microsoft Q&A
Usare questo tag per condividere suggerimenti, richieste di funzionalità e bug con il team di domande e risposte Microsoft. Il team di domande e risposte Microsoft valuterà regolarmente i commenti e suggerimenti e fornirà aggiornamenti lungo il percorso.
46 domande
0 commenti Nessun commento
{count} voti

Risposta accettata
  1. Nikola Kochmalarski (Convergys Corporation) 600 Punti di reputazione Fornitore Microsoft
    2024-07-29T05:51:10.53+00:00

    Salve Carmello,

    ottimo che tu abbia risolto questo problema, cosi puo essere utile per la community.

    Auguro una buona setttimana

    Saluti,

    Nikola Kochmalarski


1 risposta aggiuntiva

Ordina per: Più utili
  1. Carmelo Barba 25 Punti di reputazione
    2024-07-28T08:21:43.45+00:00

    Risolto!

    Guardando in giro sulla documentazione di Microsoft, ho visto che occorre impostare il 'Supporto di valori DPI elevato in Windows Form', tramite l'aggiunta del seguente tag e relative proprietà al file 'App.config', come elemento figlio del tag 'configuration':

    <System.Windows.Forms.ApplicationConfigurationSection>
    
    	<add key="DpiAwareness" value="PerMonitorV2" />
    
    </System.Windows.Forms.ApplicationConfigurationSection>
    ```Così facendo le differenze di risoluzione tra fase di progettazione e fase di esecuzione vengono eliminate.
    
    Un saluto a tutti.
    
    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento

Risposta

Le risposte possono essere contrassegnate come risposte accettate dall'autore della domanda. Ciò consente agli utenti di sapere che la risposta ha risolto il problema dell'autore.