2014-04-04 5 views
5

Ich möchte Elemente innerhalb einer Kontrolle bringen, so dass sie zunächst wie diese passen (wie ein StackPanel mit horizontaler Ausrichtung):Wie kann ich diese Mischung aus StackPanel- und UniformGrid-Verhalten erreichen?

enter image description here

Aber dann, wenn die Elemente auf den Punkt stapeln lassen, werden sie nicht passen mehr auf dem Bildschirm, möchte ich sie so verhalten starten:

enter image description here

wie ein UniformGrid: als die Anzahl der Elemente zu erhöhen, sie werden kleiner.

Was wäre das Beste oder eine Möglichkeit, dies zu tun? Da die Größe des externen Steuerelements variabel ist (hängt von der Bildschirmgröße des Benutzers ab), kann ich es nicht "hacken", um je nach Anzahl der Elemente die eine oder die andere Komponente zu verwenden, da ich die Anzahl nicht vorhersagen kann der Bildschirm.

Antwort

4

einfachste/schnellste Strecke, werfen Sie es in einem ViewBox damit Stretch="Uniform" legen Sie es für Sie zu tun, als ein Beispiel, wie unten, nur addieren/subtrahieren Rechtecke und Sie werden das Konzept bekommen ...

<Viewbox Stretch="Uniform" MaxHeight="60" MaxWidth="200"> 
    <StackPanel Orientation="Horizontal"> 
     <Rectangle Fill="Red" Margin="5" Height="50" Width="50"/> 
     <Rectangle Fill="Red" Margin="5" Height="50" Width="50"/> 
     <Rectangle Fill="Red" Margin="5" Height="50" Width="50"/> 
     <Rectangle Fill="Red" Margin="5" Height="50" Width="50"/> 
     <Rectangle Fill="Red" Margin="5" Height="50" Width="50"/> 
     <Rectangle Fill="Red" Margin="5" Height="50" Width="50"/> 
     <Rectangle Fill="Red" Margin="5" Height="50" Width="50"/> 
     <Rectangle Fill="Red" Margin="5" Height="50" Width="50"/> 
     <Rectangle Fill="Red" Margin="5" Height="50" Width="50"/> 
     <Rectangle Fill="Red" Margin="5" Height="50" Width="50"/> 
    </StackPanel> 
</Viewbox> 

Hoffe das hilft. Prost

Verwandte Themen