2015-08-07 14 views
22

Ho appena iniziato a studiare lo sviluppo di app UWP su Windows 10 Pro utilizzando Visual Studio 2015 Community Edition. Ho provato a modificare C# version of the official "Hello, world" sample impostando gli attributi Width e Height del tag Page in MainPage.xaml. È interessante notare che quando avvierò l'app, le sue dimensioni saranno diverse. Inoltre, se ridimensiono la finestra e la riavvio, l'app sembra ricordare la dimensione della finestra precedente.App UWP per Windows 10 - Impostazione delle dimensioni della finestra sul desktop

E 'possibile forzare un'app UWP ad avere una dimensione di finestra predefinita, almeno sui PC desktop?

risposta

41

Provare a impostare PreferredLaunchViewSize nel proprio MainPage 's costruttore come questo.

public MainPage() 
{ 
    this.InitializeComponent(); 

    ApplicationView.PreferredLaunchViewSize = new Size(480, 800); 
    ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize; 
} 

Aggiornamento

Come @kol anche sottolineato, se volete qualsiasi formato più piccolo da quello predefinito 500x320, è necessario reimpostare manualmente.

ApplicationView.GetForCurrentView().SetPreferredMinSize(new Size(200, 100)); 
+0

Interessante, grazie. È possibile impostare questo in XAML? – kol

+0

Purtroppo non la penso così. –

+1

Quando si pensa, non si imposta la dimensione sulla pagina principale, si imposta sulla pagina principale 'genitore del genitore, che è il genitore del frame. Non penso che ci sia accesso diretto a xaml per questo. –

9

Ciao ho la soluzione al vostro problema, il fatto è che non si ha realmente ha il controllo la dimensione della finestra, e anche se si cercherà di ridimensionare esso potrebbe non riuscire. Ho chiesto la stessa domanda sul forum di MSDN e ottenuto la risposta qui

https://social.msdn.microsoft.com/Forums/en-US/3110e17d-b7c8-4040-8e25-a27df7595f13/windows-10-universal-directx-application?forum=wpdevelop

btw ecco la soluzione nel vostro gestore di eventi "OnLaunched" o nel vostro gestore eventi "OnActivated" trovare:

Window.Current.Activate(); 

e sostituirlo con:

float DPI = Windows.Graphics.Display.DisplayInformation.GetForCurrentView().LogicalDpi; 

Windows.UI.ViewManagement.ApplicationView.PreferredLaunchWindowingMode = Windows.UI.ViewManagement.ApplicationViewWindowingMode.PreferredLaunchViewSize; 

var desiredSize = new Windows.Foundation.Size(((float)800 * 96.0f/DPI), ((float)600 * 96.0f/DPI)); 

Windows.UI.ViewManagement.ApplicationView.PreferredLaunchViewSize = desiredSize; 

Window.Current.Activate(); 

bool result = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().TryResizeView(desiredSize); 

E 'meglio se si inserisce il codice in "OnActivated()" gestore di eventi come sarà impostare le s definiti ize all'avvio dell'app e quando diventa attivo dopo eventuali interruzioni.

In "DesiredSize" Calcolo 800 è la larghezza e 600 in altezza è necessaria questo calcolo perché la dimensione è in DPI in modo da avere per convertirlo da pixel a DPI mantenere

anche a mente che le dimensioni non può essere inferiore " 320x200 "

+3

Le risposte di solo collegamento non sono il modo di SO. I collegamenti potrebbero essere obsoleti un giorno. Metti le informazioni essenziali nella tua risposta! – jogo

Problemi correlati