У меня есть ControlTemplate
, который не отображает цвет Background
.Я ничего не устанавливаю в коде или в других позициях, поэтому я совершенно запутался в этом.
ControlTemplate
:
<ControlTemplate ... >
<RelativeLayout BackgroundColor="Green">
<Grid BackgroundColor="Black"
RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent,Property=Width,Factor=1,Constant=0}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent,Property=Height,Factor=1,Constant=0}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ContentPresenter Grid.Row="1"
Grid.Column="1"
BackgroundColor="Blue"/>
</Grid>
</RelativeLayout>
</ControlTemplate>
И представление:
<ContentView ...
ControlTemplate="{x:TemplateBinding templates:OverlayViewTemplate}">
<ContentView.Content>
<Grid x:Name="GrdBase"
BackgroundColor="White"
VerticalOptions="Center"
HorizontalOptions="Center">
<Grid.GestureRecognizers>
<TapGestureRecognizer Command="{Binding ClickCommand}" />
</Grid.GestureRecognizers>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="10" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<StackLayout Grid.Row="0"
Grid.Column="0">
<Label x:Name="LblTest"
Text="Hello Xamarin.Forms!" />
</StackLayout>
</Grid>
</ContentView.Content>
</ContentView>
Я что-то здесь пропускаю или Шаблон не может отобразить цвет фона?
Редактировать
После многих испытаний я обнаружил, что Шаблон не используетсяContentView
.Даже если я определю шаблон внутри моего App.xaml
и буду ссылаться на него через ControlTemplate="{StaticResource ViewTemplate}"
.У меня есть другой шаблон, который используется моими страницами, и он работает без проблем, поэтому есть ли ошибка при использовании его с View
?