2012-08-28 5 views
5

Ich kann nicht herausfinden, wie die Größe meiner Anwendung zu steuern, während die Größe des Inhalts mit dem Hauptfenster zu ändern. Es ist eine WPF App und ich benutze Caliburn Micro (ViewModel zuerst) und alle meine Ansichten sind UserControls.Einstellen der Größe der wpf/caliburn.micro-App, während der Inhalt mit dem Hauptfenster skaliert werden kann.

Ich möchte die Hauptansicht UserControl (im Grunde ein Raster, das andere Benutzersteuerelemente mit ihren eigenen Ansichtsmodellen enthält), um den gesamten Hauptfensterbereich der Anwendung zu strecken und auszufüllen. Also habe ich HorizontalAlignment und VerticalAlignment in der Hauptansicht auf Stretch eingestellt. Aber das funktioniert nicht wie ich will.

Wenn ich die Höhe & Breite in der Hauptansicht auf einen Wert einstelle, dann kann ich damit die Größe des Hauptfensters der Anwendung steuern, aber die Ansicht wird fest eingestellt und wird nicht mit dem Hauptfenster skaliert.

Wenn ich die Höhe & Breite in der Hauptansicht auf Auto einstelle, passt sich die Größe des Anwendungsfensters an die Größe der Hauptansicht an, nicht andersherum.

Was ich will ist, dass der Inhalt des Anwendungsfensters (das Fenster wird automatisch von Caliburn.Micro für die Hauptansicht erstellt) reicht, um das Anwendungsfenster auszufüllen, dessen Größe ich irgendwie eingestellt habe finde heraus, wie es geht.

Hoffe, du kannst helfen, ich bin fest!

Antwort

0

Entfernen Sie die Höhe und Breite, die Sie für die untergeordneten Steuerelemente & festgelegt haben, verwenden Sie die UIElement.CliptoBounds-Eigenschaft, und legen Sie sie auf True fest.

http://msdn.microsoft.com/en-us/library/system.windows.uielement.cliptobounds.aspx

+0

Aber das steuert, wie Elemente abgeschnitten werden. Das ist nicht mein Hauptproblem hier. Wie lege ich die Startgröße der App fest, während das Raster in der Hauptansicht nach dem Start die Größe der App ändert? – Liell

+0

http://stackoverflow.com/questions/36108/how-to-get-controls-in-wpf-to-fill-available-space – Rauld

9

Ich weiß, diese Frage ist sehr alt und bezieht sich wahrscheinlich auf Caliburn.Micro v1, aber nur für den Fall, dass jemand anderes wie mir zusammen kommt, hier ist die Lösung für Caliburn.Micro v2.

In Ihrer OnStartup Funktion des Bootstrapper, brauchen Sie nur Width, Height und SizeToContent.Manual Einstellungen in die DisplayRootViewFor Funktion wie unten getan:

protected override void OnStartup(object sender, StartupEventArgs e) 
{ 
    var settings = new Dictionary<string, object> 
    { 
     { "SizeToContent", SizeToContent.Manual }, 
     { "Height" , 600 }, 
     { "Width" , 1024 }, 
    }; 

    DisplayRootViewFor<IShell>(settings); 
} 
+1

Danke - Einstellungen SizeToContent schien den Trick zu tun! – Govert