首页 > 解决方案 > Xamarin.Forms - 我的 ControlTemplate 不尊重 HeightRequest

问题描述

我在 App.xaml 中创建了一个 BottomBar,我正在使用 ControlTemplate 将其调用到不同页面的 Xaml 文件中。

我的问题是:我尝试在我的 App.xaml 文件的布局中使用 HeightRequest,也尝试在调用它时在另一个页面的 Xaml 文件中使用它,但似乎没有任何效果。该页面不尊重 HeightRequest。

我希望它们在每一页(60)上都具有相同的高度。

第 1 页

第2页

第3页

如您所见,底部栏在每一页上都有不同的大小。

我的 App.xaml:

<ControlTemplate x:Key="CartTemplate" >
            <AbsoluteLayout
                x:Name="CartSection"
                HorizontalOptions="FillAndExpand"
                VerticalOptions="FillAndExpand"
                BackgroundColor="#004EFF"
                HeightRequest="60">
                <Image Source="caricon"
                       HorizontalOptions="CenterAndExpand"
                       VerticalOptions="CenterAndExpand"
                       AbsoluteLayout.LayoutBounds="0.5,0.5"
                       AbsoluteLayout.LayoutFlags="PositionProportional"/>
                <Grid 
                    HeightRequest="22"
                    IsVisible="{TemplateBinding BindingContext.OrderCountVisible}"
                    WidthRequest="22"
                    VerticalOptions="CenterAndExpand"
                    HorizontalOptions="CenterAndExpand"
                    AbsoluteLayout.LayoutBounds="0.5,0.5"
                    AbsoluteLayout.LayoutFlags="PositionProportional"
                    Padding="25,0,0,10">
                    <Ellipse Fill="White"/>
                    <Label
                        Text="{TemplateBinding BindingContext.cartNumberItems}"
                        HorizontalOptions="CenterAndExpand"
                        TextColor="#004EFF"
                        FontAttributes="Bold"
                        FontSize="14"
                        Padding="0,0,0,3"
                        FontFamily="{StaticResource Helvetica}"/>
                </Grid>
                <AbsoluteLayout.GestureRecognizers>
                    <TapGestureRecognizer Command="{TemplateBinding BindingContext.CarCommand}" />
                </AbsoluteLayout.GestureRecognizers>
            </AbsoluteLayout>
        </ControlTemplate>

这就是我调用模板的方式(在结束标签上方的底部):

<TemplatedView ControlTemplate="{StaticResource CartTemplate}"/>

    </StackLayout>
</ContentPage.Content>

提前致谢。

标签: xamlxamarinxamarin.forms

解决方案


推荐阅读