2017-02-12 1 views
0

Ich folge dem Kopf zuerst C# Buch und bekam ein kleines Problem. Es weist an, eine Leinwand mit Hintergrundfarbe zu bilden. Ich habe die Leinwand Breite und Höhe auf Auto, die 0. zeigt aber, wenn ich dies tun die Hintergrundfarbe nicht zeigen:C#/xaml Hintergrundfarbe zeigt nicht auf automatische Breite/Höhe Einstellungen

<Canvas x:Name="playArea" HorizontalAlignment="Center" Margin="0" Grid.Row="1" VerticalAlignment="Center" Grid.ColumnSpan="3" Background="White"/> 

Wenn ich die Breite und Höhe auf eine beliebige Zahl gesetzt, die Farbe zeigt (in respektables Größe). Warum kann ich die Hintergrundfarbe nicht in den automatischen Einstellungen sehen?

Antwort

0

Wenn Sie HorizontalAlignment = "Center" festlegen, versucht Ihr Canvas, so wenig horizontalen Platz wie möglich (ActualWidth) einzunehmen und sich in der Mitte seines Containers zu platzieren.

In Ihrem Fall wird ActualWidth NULL sein, weil das Canvas nichts enthält, das mehr als das erfordern würde.

Der Grund für das Problem, das Sie beschreiben, ist, dass der Canvas eine tatsächliche Breite von NULL hat.

+0

Ich verstehe es irgendwie, aber wie soll es gelöst werden? Wenn ich Stretch in Visual Studio drücke, wird die automatische Breite und Höhe automatisch (0) eingestellt. Was ist die Lösung dafür? edit: gefunden, justieren beide Ausrichtungen zu strecken solvs es. Danke für den Weg zu öffnen :) – Onthespot

Verwandte Themen