Wie kann ich die position die position des Fensters beim Start auf der rechten Seite von dem Bildschirm des Benutzers?
Ich bin derzeit am erstellen eines sidebar-wie WPF-Anwendung in C#. Wenn ein Benutzer die Anwendung startet, möchte ich gerne das Fenster, um automatisch die position, den es selbst an der Seite von dem Bildschirm des Benutzers. Ich habe versucht ein paar Methoden und google durchsucht, aber nicht gefunden haben, hilft.
Hier ist ein Beispiel von, was ich versuche zu tun:
Wie kann ich effizient gehen über die Verwirklichung so etwas?
@dknaack
Ich habe versucht, diesen code:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.Left = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Right - this.Width;
this.Top = 0;
this.Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height;
}
und bekam den folgenden Fehler:
Fehler 1 Der Typ " System.Zeichnung.Größe' defined in an assembly that is not referenced. Müssen Sie fügen Sie einen Verweis auf die assembly " System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". C:\Users\Test\Documents\Expression\Blend 4\Projects\WindBar_Prototype_1\WindBar_Prototype_1\MainWindow.xaml.cs 32 13 WindBar_Prototype_1
und
Fehler 2 'System.Zeichnung.Größe' enthält keine definition für 'Width' und keine Erweiterungsmethode 'Breite' die Annahme ein erstes argument vom Typ 'System.Zeichnung.Größe' gefunden werden konnte (fehlt eine using-Direktive oder ein Assemblyverweis?) C:\Users\Test\Documents\Expression\Blend 4\Projects\WindBar_Prototype_1\WindBar_Prototype_1\MainWindow.xaml.cs 32 78 WindBar_Prototype_1
Hilfe?
InformationsquelleAutor anonymous | 2012-02-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beschreibung
Können Sie
Screen
ausSystem.Windows.Forms
.So fügen Sie Verweis auf die
System.Windows.Forms.dll
undSystem.Drawing.dll
. Ändern Sie dann dieLeft
undHeight
Eigenschaft in derMainWindow_Loaded
Methode.Probe
Mehr Informationen
Haben Sie verwiesen
System.Drawing.dll
auch ?Okay, ich habe gerade versucht, und ich hatte keine Schwierigkeiten haben, bauen Sie es nicht mehr. Das problem ist nur, es ist nicht auf der Seite des Bildschirms! Aussehen: prntscr.com/5th4q - Danke
Sieht aus wie das event wird nicht gefeuert. Sie können einen Haltepunkt setzen, um zu sehen, wenn die Methode aufgerufen wird. Überprüfen Sie heraus meine aktualisierte Antwort
this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
Eigentlich dachte ich, das problem. Ich hatte einige leeren Raum in dem Fenster... Haha. Vielen Dank für Ihre Hilfe! -Beste Antwort-
InformationsquelleAutor dknaack
Können Sie dies tun, ohne Bezug auf win forms-Assemblys mit
SystemParameters
. In der code-behind für Ihre Fenster XAML:SystemParameters Dokumentation
System.Windows.Forms.Screen.PrimaryScreen
ist besser für die Situationen, die Sie haben mehr als 1 BildschirmWie ist es besser MikroDel? Ich bin mit einem tripple-monitor-setup, zwei nebeneinander und die Dritte ist oben, die beiden rechts in der Mitte. Mit SystemParameters ich eigentlich alles bekam, was ich brauchte.
InformationsquelleAutor KurToMe
im xaml-Code :
im Konstruktor :
WindowStartupLocation="Manual"
ist ein guter TippInformationsquelleAutor GameAlchemist
WindowStartupLocation = WindowStartupLocation.Manual;
ist ein guter TippInformationsquelleAutor Eugene Cheverda
verwenden startPosition-Eigenschaft oder die location-Eigenschaft
Ich kann nicht versuchen den code jetzt, aber gibt es nicht in der form-Klasse ein.position-Eigenschaft, wo Sie können eigene Punkte ? wie: diese.position =new Point(x,y) ?
cia ist Die Frage zu WPF-Fenster.
private void SetWindowPosition(){ Links = SystemParameters.PrimaryScreenWidth - (double)GetValue(WidthProperty); Top = 0; }
InformationsquelleAutor yoozz
InformationsquelleAutor Jairam Kamath