Xaml Grid Column Width Auto игнорируется всеми платформами, кроме UWP

<Grid.ColumnDefinitions>
   <ColumnDefinition Width="Auto"/>
   <ColumnDefinition/>
</Grid.ColumnDefinitions>

в UWP вышеприведенные результаты приводят к тому, что первый столбец горизонтально расширяется настолько, чтобы соответствовать содержимому, но второй столбец увеличивается, чтобы занять оставшуюся доступную ширину на экране устройства. в iOS / Android / Wasm первый столбец расширяется, чтобы занимать весь экран - я никогда не вижу второй столбец. Я полагаю, что второй столбец все еще может быть там, но раздавлен или вытолкнут за пределы экрана.

Обходной путь для меня заключался в явной установке ширины столбца, например, говоря, что первый столбец равен 30*, а четвертый столбец - 70*. Это также работает и правильно показывает 2 столбца:

<Grid.ColumnDefinitions>
            <ColumnDefinition x:Name="leftCol" Width="110"/>
            <ColumnDefinition x:Name="rightCol" Width="*"/>
</Grid.ColumnDefinitions>

1 ответ

В общем Grid.Auto поддерживается Uno на iOS/Android/WASM. Код ниже работает, как ожидалось, например.

Если вы видите проблему, это, вероятно, связано с содержанием Grid, Если вы сможете опубликовать код, который воспроизводит проблему, мы можем помочь вам в дальнейшем.

<Grid Margin="0,100,0,0">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <TextBlock Text="In auto"
               Grid.Column="0" />
    <Border Background="Pink"
            Height="50"
            HorizontalAlignment="Stretch"
            VerticalAlignment="Top"
            Grid.Column="1"/>
</Grid>

Окна:

IOS:

Другие вопросы по тегам