#xamarin.forms #grid
#xamarin.формы #сетка #xamarin.forms
Вопрос:
У меня есть эта сетка:
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.07*" />
<ColumnDefinition Width="1.2*" />
<ColumnDefinition Width="0.05*" />
</Grid.ColumnDefinitions>
</Grid>
Эта сетка является частью titleview в Android и ios. Мне нужно центрировать значок в среднем столбце, но поскольку ios и Android обрабатывают вид заголовка по-разному, значок в середине на ios находится немного левее, в то время как на Android он находится в центре. Мне нужно было бы установить разную ширину столбца для каждой платформы.
Выполнимо ли это?
Спасибо!
Ответ №1:
Вы можете использовать следующий код для достижения различных определений столбца для разных платформ (Android, ios).
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition >
<ColumnDefinition.Width>
<OnPlatform x:TypeArguments="GridLength">
<On Platform="iOS" Value="1.2*"></On>
<On Platform="Android" Value="2.07*"></On>
</OnPlatform>
</ColumnDefinition.Width>
</ColumnDefinition>
<ColumnDefinition Width="1.2*" />
<ColumnDefinition Width="0.05*" />
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Text="By default, a Grid contains one row and one column." />
</Grid>
Комментарии:
1. Эпично, это работает КАК ШАРМ <3 (просто обратите внимание, что мой исходный столбец имел ширину 1,07, а не 2,07. (может сбить с толку некоторых, кто пытается абстрагироваться от того, что вы здесь сделали), Возможно, отредактируйте его, чтобы люди знали, что именно произошло. спасибо 🙂