Xamarin.Forms ControlTemplate не отображает фон - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть 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?

...