Wie halten Sie grid cell Höhe und Breite die gleichen
Ich brauche, um die Grid
Zelle Höhe = Breite, wenn die Größe.
Den funktionierenden code mit einer viewBox:
<Viewbox>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Background="Black" Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}"></Label>
<Label Grid.Row="1" Grid.Column="0" Background="Gray" Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}"></Label>
<Label Grid.Row="0" Grid.Column="1" Background="Gray" Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}"></Label>
<Label Grid.Row="1" Grid.Column="1" Background="Black" Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}"></Label>
</Grid>
</Viewbox>
Danke an H. B. für die Idee, eine viewBox! 🙂
- Sieht aus wie Sie es vermisst habe, den code!
- Klicken Sie auf das Häkchen Umriss neben Matt West, die Antwort zu akzeptieren, denn es beantwortet deine ursprüngliche Frage. Auch vermeiden Sie bitte Fragen, mehrere Fragen in eine oder die Umwandlung Ihrer ursprünglichen Frage etwas völlig anderes. Wenn Sie Probleme mit clipping-Suche SO und wenn es nichts hilft eine neue Frage stellen über genau dieses problem. (Es sei denn natürlich die Behebung der clipping selbst wird als ein hack, und Sie wirklich wollen, eine bessere Lösung, was auch dazu führt, dass Sie Ihre Frage in der Tat nicht ausreichend beantwortet worden sein)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den "richtigen" Weg, dies zu tun ist wohl der Verwendung der shared-Größe Merkmale der
Grid
Kontrolle, aber diese wird leider verhindert, dass stretching das gesamte raster. z.B.Könnte man hier eine
Viewbox
aber das resize-Verhalten, ist wahrscheinlich nicht das, was Sie wollen, da es vergrößert den Inhalt. Vielleicht können Sie einen Weg finden, machen diese nutzbar und in Ihrem Kontext.WPF bietet eine
UniformGrid
- vielleicht finden Sie diese mehr hilfreich für das, was Sie zu tun versuchen. Hier ist ein Artikel, der zeigt es:http://www.c-sharpcorner.com/UploadFile/yougerthen/308222008124636PM/3.aspx
Um die Dinge Platz, nur binden Sie das raster
Width
Eigenschaft auf seine eigeneActualHeight
Eigenschaft:UniformGrid
nicht halten Sie Ihre Kinder in der Form der Quadrate, wenn die Größe.Columns
oderRows
), aber es wird nicht korrekt skaliert, wenn die Höhe größer ist als die Breite des Gitters.Ich glaube, Sie sollten ein UniformGrid statt, oder Sie können versuchen, so etwas wie: