Domanda

voglio centrare il mio WPF applicazione all'avvio sullo schermo primario. So che devo impostare myWindow.Left e myWindow.Top, ma dove posso ottenere i valori?

Ho trovato System.Windows.Forms.Screen.PrimaryScreen, che non è apparentemente WPF. Esiste un WPF alternativa che mi dà la risoluzione dello schermo o qualcosa del genere?

È stato utile?

Soluzione

Mettere questo nel costruttore della finestra

WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
  

NET FrameworkSupported in: 4, 3.5,   3.0

     

.NET Framework client ProfileSupported   in: 4, 3.5 SP1

Altri suggerimenti

XAML

WindowStartupLocation="CenterScreen"

È comunque possibile utilizzare la classe Screen da un'applicazione WPF. Hai solo bisogno di fare riferimento alle System.Windows.Forms assemblaggio dall'applicazione. Una volta fatto questo, (e System.Drawing fatto riferimento per l'esempio qui sotto):

Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;

... funziona bene.

Avete preso in considerazione l'impostazione della proprietà WindowStartupLocation finestra principale per CenterScreen?

Che dire della classe SystemParameters in PresentationFramework? Ha un WorkArea proprietà che sembra essere quello che stai cercando.

Ma, perché non sarà l'impostazione del lavoro Window.WindowStartupLocation? CenterScreen è uno dei valori enum. Dovete modificare il centraggio?

Non è necessario fare riferimento al montaggio System.Windows.Forms dall'applicazione. Invece, è possibile utilizzare System.Windows.SystemParameters.WorkArea. Ciò equivale al System.Windows.Forms.Screen.PrimaryScreen.WorkingArea!

Non c'è WPF equivalente. System.Windows.Forms.Screen è ancora parte del framework .NET e può essere utilizzato da WPF però.

questa domanda per più dettagli, ma è possibile utilizzare le chiamate relative a schermi utilizzando il class WindowInteropHelper per avvolgere il vostro controllo WPF.

var window = new MyWindow();

per il centro di utilizzo dello schermo:

window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

per il centro dell'impiego finestra padre:

window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top