Wie erkenne ich Orientierungsänderungen und ändere das Layout?

8

Sagen wir, dass ich ein Gitter mit 2 Zeilen, 2 Spalten und vielen Steuerelementen in jeder Zelle habe.

Wenn die Anwendung in den Fangmodus geändert wurde, meinte ich 1/3 des Bildschirms, auf dem ich die Anwendung nur haben möchte, eine Spalte, zwei Zeilen und nur einige Steuerelemente, die ich festlegen würde.

Welche Art von Kontrolle habe ich dafür?

thx

    
Luis Valencia 11.06.2012, 07:03
quelle

3 Antworten

8

Sie sollten den VisualStateManager in xaml für eine vollständige xaml-Lösung verwenden:

%Vor%

Erstellen Sie StoryBoards für jeden VisualState und verstecken / zeigen Sie Elemente in Ihrem XAML an. Microsoft-Beispiele verwenden die gleiche Lösung.

-

Aktualisieren

Ich habe das Netz durchsucht und die richtigen Zustände gefunden, ein Beispiel ist hinter diesem Link: MSDN .

%Vor%

Die Zustände entsprechen der ApplicationViewState -Enumerierung. Noch mehr Informationen finden Sie hier .

    
Kolky 11.06.2012, 11:59
quelle
9

Ereignisse DisplayProperties.OrientationChanged (wie von @ Jan K. vorgeschlagen) möglicherweise nicht genau das, was Sie suchen, in Anbetracht der Bemerkungen zu dieser Veranstaltung:

  

Das DisplayProperties.OrientationChanged -Ereignis tritt nur auf, wenn sich die Ausrichtung der Anzeige oder des Monitors ändert und nicht unbedingt, wenn sich die Ausrichtung Ihrer App ändert. Um die Ausrichtung der App für Layoutzwecke zu ermitteln, verwenden Sie die ApplicationView.Value Eigenschaft.

aber da ApplicationView.Value wahrscheinlich wird nach verlassen werden, um Windows 8.1 Release MS vorschlagen verwenden ApplicationView.GetForCurrentView () statt:

  

Die statischen Methoden von ApplicationView können für Versionen nach der Windows 8.1-Vorschau geändert oder nicht verfügbar sein. Verwenden Sie stattdessen ApplicationView.GetForCurrentView () , um eine Instanz von ApplicationView zu erhalten.

So jetzt ich mit diesem Code am Ende habe (eine Art dynamischer Sicht hat und nicht alles entwirft vorab in XAML über Visual kann leider):

%Vor%     
Sevenate 07.08.2013 16:42
quelle
8

Sehen Sie sich die DisplayProperties.OrientationChanged -Event. Wenn es ausgelöst wird, können Sie das Raster ändern und die Steuerelemente neu anordnen.

    
Jan K. 11.06.2012 11:58
quelle