Xamarin.Forms-ControlTemplate不显示ContentPresenter

时间:2019-02-15 10:08:25

标签: android ios xamarin xamarin.forms

我正在尝试使用ControlTemplate,以便在每个页面上都有页脚,但是每当我使用模板时,仅 就会显示模板,页面内容也会消失。好像ContentPresenter不在呈现页面内容,仅呈现模板内容。我一直在使用this official doc来使模板正常工作,但无济于事。

这是我的模板代码:

<Application xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="TestApp.App">
   <Application.Resources>
    <ResourceDictionary>
        <ControlTemplate x:Key="MainFooter">
            <Grid>
                <ContentPresenter/>
                <Label Text="Template footer" FontSize="24"/>
            </Grid>
        </ControlTemplate>
    </ResourceDictionary>
   </Application.Resources>
</Application>

和页面代码:

<ContentPage Title="Test" xmlns="http://xamarin.com/schemas/2014/forms" 
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
         x:Class="TestApp.Login">
    <ContentView ControlTemplate="{StaticResource MainFooter}" Padding="0, 20, 0, 0">

        <StackLayout VerticalOptions="CenterAndExpand">
            <Label Text="Page content" HorizontalOptions="Center"/>
        </StackLayout>


    </ContentView>
</ContentPage>

从此代码的输出中可以看到,仅显示ContentTemplate,而不显示“页面内容”标签(ContentPresenter内容)。如何显示页面内容和模板内容?

page output

1 个答案:

答案 0 :(得分:0)

将我的头撞在墙上一会儿之后,看来页面内容 实际上是在我在模拟器中启动应用后呈现的。

一旦应用了ControlTemplate,预览器将仅显示ControlTemplate,而不显示页面内容。很有可能是Visual Studio中的一个错误,因此进行了一些挖掘:

Relatively old Bugzilla, same problem

Someone else with the same problem

我正在使用Visual Studio 7.7.4和Xamarin 5.2.1.15。猜猜我只要要预览页面就必须关闭ControlTemplate。