/ / ColumnDefinition MinWidth nie działa poprawnie - wpf, xaml, grid, width, css

ColumnDefinition MinWidth nie działa poprawnie - wpf, xaml, grid, width, css

Używam Grid w WPF (xaml) i mam niektóredziwny efekt podczas korzystania z właściwości MinWidth w definicji kolumny. Na przykład, gdy używam 9 ColumnDefinition, a każda właściwość ColumnDefinition ma właściwość "Width =" * "", a jedna z kolumn środkowych ma także właściwość MinWidth, to rozmiar innych kolumn jest nieprawidłowy.

Trudno to opisać, ale ten kod xaml ilustruje to ładnie:

  <Grid Width="500">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*" MinWidth="250"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Background="Green"/>
<Border Grid.Column="1" Background="Blue"/>
<Border Grid.Column="2" Background="Red"/>
<Border Grid.Column="3" Background="Yellow"/>
<Border Grid.Column="4" Background="Purple"/>
<Border Grid.Column="5" Background="Orange"/>
<Border Grid.Column="6" Background="Azure"/>
<Border Grid.Column="7" Background="LightBlue"/>
<Border Grid.Column="9" Background="LightGreen"/>
</Grid>

Po uruchomieniu tego kodu xaml zobaczysz, że pierwsze 3 kolumny mają inną szerokość niż ostatnie 5 kolumn, gdzie oczekiwałem, że wszystkie mają tę samą szerokość.

Czy ktoś wie, czy to błąd. A jeśli istnieje sposób, aby to zrobić poprawnie.

Z góry dziękuję.

Odpowiedzi:

10 dla odpowiedzi № 1

Rozumiem, co masz na myśli - kolumny po lewej stronie żółtej kolumny są szersze niż kolumny po prawej stronie, mimo że mają one takie same proporcje.

Powiedziałbym, że to błąd, zwłaszcza gdy weźmiemy pod uwagę następujące obejście Prace:

<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="1.0000001*" MinWidth="250"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>

Zgaduję, że ten błąd jest związany z tym, jak kolumny są pogrupowane według szerokości ...


0 dla odpowiedzi nr 2

Wygląda tak, jak działa. Masz ograniczoną siatkę w 500 punktach i powiedziałeś: hej, podaj wszystkie kolumny siatki o tej samej szerokości, ale także ta kolumna powinna wynosić co najmniej 250 punktów Teraz pytanie od WPF do ciebie: Stary, widzę, że poprosiłeś mnie, żebym dał każda z 9 kolumn co najmniej 250 punktów, jak mogę to zrobić w 500 punktach? i podejmuje decyzję, aby uszanować minimalną szerokość, ale cena jest - szerokość pozostałych kolumn.

Jeśli chodzi o sposób, aby to zrobić poprawnie. Co masz na myśli? Co chcesz?