2 Stimmen

Resizable WPF Grid fügt Leerzeilen zwischen Zeilen und Spalten je nach tatsächlicher Größe ein

Ich habe eine Grid die Anzeige von Rechtecken. Die Website Grid kann in der Größe verändert werden und soll benachbarte Rechtecke ohne Lücke anzeigen.

Je nach der tatsächlichen Größe des Grid erscheinen Leerzeilen zwischen den Zeilen und Spalten der Tabelle Grid . Damit sollen Größen ausgeglichen werden, bei denen die Breite nicht ein Vielfaches der Anzahl der Spalten oder die Höhe nicht ein Vielfaches der Anzahl der Zeilen ist.

Der folgende XAML-Code veranschaulicht dies:

<Window x:Class="test.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition></ColumnDefinition>
        <ColumnDefinition></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition></RowDefinition>
        <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <Rectangle Grid.Column="0" Grid.Row="0" Fill="DarkBlue"></Rectangle>
    <Rectangle Grid.Column="1" Grid.Row="0" Fill="DarkOrange"></Rectangle>
    <Rectangle Grid.Column="0" Grid.Row="1" Fill="DarkBlue"></Rectangle>
    <Rectangle Grid.Column="1" Grid.Row="1" Fill="DarkBlue"></Rectangle>
</Grid>

</Window>

Wie kann ich diese Leerzeilen verhindern? Wenn eine oder einige der Spalten/Zeilen etwas größer sind als andere, ist das nicht wirklich ein Problem. Ich würde das Markup gerne einfach halten.

Ich habe erfolglos versucht Stretch , Fill , indem sie die Grid in einem ViewBox , ShowGridLines=False, Width=Auto etc.

Nachfolgend finden Sie eine Abbildung des Themas:

enter image description here

3voto

kenwarner Punkte 27859

Hinzufügen SnapsToDevicePixels="True" zu Ihrem Grid Kontrolle

Pixel Snapping in WPF-Anwendungen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X