У меня есть этот код, который в настоящее время представляет собой комбинацию и
Я хотел бы перейти к относительной компоновке и не видел таких примеров. Поблагодарю любые предложения о том, как это можно сделать.
Некоторые моменты о XAML.
- На экране появляются либо emptyGrid, либо фразаGrid
- На экране появляются кнопки buttonGrid или tapGrid.
- Вертикальный центр кнопок и метка крана должны быть в том же положении. Так что, когда кнопки не отображаются, метка метки появляется на тех же вертикальных кнопках, что и кнопки.
- Рамка отображается на вкладке
Я понимаю, что это более чем простой вопрос, но я уверен, что это будет интересно для других. Поскольку ответ может быть довольно вовлечен, я открою за это 250-дневную щедрость за это несколько дней.
<Grid x:Name="emptyGrid" Grid.Row="1" Grid.Column="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<StackLayout Padding="10,0,10,0" HorizontalOptions="Center" VerticalOptions="Center">
<Label x:Name="emptyLabel" FontSize="18" XAlign="Center" TextColor="Gray" />
</StackLayout>
<Button x:Name="resetButton" Text="Reset points?" TextColor="White" FontAttributes="Bold" FontSize="20" HeightRequest="60" BackgroundColor="#E19A3F" HorizontalOptions="FillAndExpand" VerticalOptions="StartAndExpand">
<Button.FontSize>
<OnPlatform x:TypeArguments="x:Double" iOS="25" Android="20" />
</Button.FontSize>
</Button>
</Grid>
<Grid x:Name="phraseGrid" Padding="20, 20, 20, 20" BackgroundColor="Transparent" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Grid.RowDefinitions>
<RowDefinition Height="6*" />
<RowDefinition Height="6*" />
<RowDefinition Height="80*" />
<RowDefinition Height="13*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid x:Name="prGrid" Grid.Row="0" Grid.Column="0"
Padding="5,0,0,0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"
BackgroundColor>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25*" />
<ColumnDefinition Width="25*" />
<ColumnDefinition Width="50*" />
</Grid.ColumnDefinitions>
<Label x:Name="msg1" Style="{StaticResource smallLabel}" Text="msg1" Grid.Row="0" Grid.Column="0" />
<Label x:Name="msg2" Style="{StaticResource smallLabel}" Text="msg2" Grid.Row="0" Grid.Column="1" />
<Label x:Name="msg3" Style="{StaticResource smallLabel}" Text="msg3" Grid.Row="0" Grid.Column="2" />
</Grid>
<Grid x:Name="siGrid" Grid.Row="1" Grid.Column="0"
Padding="5,0,0,0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25*" />
<ColumnDefinition Width="25*" />
<ColumnDefinition Width="50*" />
</Grid.ColumnDefinitions>
<Label x:Name="faveLabel" Style="{StaticResource smallLabel}" FontFamily="FontAwesome" Grid.Row="0" Grid.Column="0" />
<Label x:Name="wordTypeLabel" Style="{StaticResource smallLeftLabel}" Grid.Row="0" Grid.Column="1" />
</Grid>
<Grid x:Name="wordGrid" Grid.Row="2" Grid.Column="0"
HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Grid.RowDefinitions>
<RowDefinition Height="45*" />
<RowDefinition Height="55*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Grid.Row="0" Grid.Column="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Label x:Name="textLabel" FontSize="45" XAlign="Center" VerticalOptions="Center" LineBreakMode="WordWrap" />
</Grid>
<Grid x:Name="detailGrid" Grid.Row="1" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Padding="10,0,10,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label x:Name="detail1" Grid.Row="0" Style="{StaticResource bigLabel}" />
<Label x:Name="detail2" Grid.Row="1" Style="{StaticResource bigLabel}" />
<Label x:Name="detail3" Grid.Row="2" Style="{StaticResource bigLabel}" />
</Grid>
</Grid>
<Grid x:Name="buttonGrid" Grid.Row="3" Grid.Column="0"
HorizontalOptions="FillAndExpand" VerticalOptions="Center" Padding="20, 0">
<Button x:Name="aButton" Style="{StaticResource pointButton}" Grid.Column="0" Text="0">
</Button>
<Button x:Name="bButton" Style="{StaticResource pointButton}" Grid.Column="1" Text="1">
</Button>
<Button x:Name="cButton" Style="{StaticResource pointButton}" Grid.Column="2" Text="2">
</Button>
<Button x:Name="dButton" Style="{StaticResource pointButton}" Grid.Column="3" Text="5">
</Button>
</Grid>
<Grid x:Name="tapGrid" Grid.Row="3" Grid.Column="0" HorizontalOptions="FillAndExpand" VerticalOptions="Center">
<Label x:Name="tapScreenLabel" Style="{StaticResource smallLabel}" />
</Grid>
</Grid>
</StackLayout>