/ / ColumnDefinition MinWidth nefunguje správne - wpf, xaml, mriežka, šírka, css

ColumnDefinition MinWidth nefunguje správne - wpf, xaml, mriežka, šírka, css

Používam mriežku v WPF (xaml) a ja mám niekoľkopodivný efekt pri použití vlastnosti MinWidth v ColumnDefinition. Napríklad, keď používam 9 ColumnDefinition a každá ColumnDefinition má vlastnosť "Width =" * "" a jeden zo stredných stĺpcov má aj vlastnosť MinWidth, veľkosť ostatných stĺpcov je nesprávna.

No, je ťažké popísať, ale toto xaml kód to dobre ilustruje:

  <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>

Keď spustíte tento xaml kód, uvidíte, že prvé tri stĺpce majú inú šírku ako posledné 5 stĺpcov, kde som očakával, že všetky tieto majú rovnakú šírku.

Vie niekto, či je to chyba. A ak existuje spôsob, ako to urobiť správne.

Vopred ďakujem.

odpovede:

10 pre odpoveď č. 1

Vidím, čo myslíte - stĺpce naľavo od žltej farby sú širšie ako stĺpce napravo, aj keď sú určené na to, aby mali rovnaké rozmery.

Povedal by som, že je to chyba, zvlášť keď si myslíte, že nasledujúce riešenie práce:

<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>

Myslím, že táto chyba súvisí s tým, ako sú stĺpce zoskupené podľa šírky ...


0 pre odpoveď č. 2

Vyzerá to tak, ako to funguje. Máte limitovanú mriežku v 500 bodoch a povedal: hej, dajte všetky stĺpce mriežky rovnakú šírku, ale aj tento stĺpec by mal byť aspoň 250 bodov. Teraz otázka od WPF k vám: Kámo, vidím, že si ma požiadal dať každý z 9 stĺpcov minimálne 250 bodov, ako to môžem urobiť v 500 bodoch? A rozhodne sa, že rešpektuješ svoju minimálnu šírku, ale cena je - šírka ostatných stĺpcov.

Pokiaľ ide o správny postup. Čo tým myslíte? Čo chceš?