Как я могу сделать так, чтобы ВысотаRequest внутри шаблона игнорировалась, если она не указана в XAML, который использует шаблон? - PullRequest
0 голосов
/ 01 сентября 2018

Этот шаблон принимает в качестве обязательного параметра HeaderHeight. Есть ли способ, которым я могу игнорировать HeaderHeight в StackLayout, если он не указан в XAML, который вызывает шаблон?

<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Japanese;assembly=Japanese" x:Class="Japanese.Templates.HeaderTemplate" x:Name="this">
    <ContentView.Triggers>
        <Trigger TargetType="local:Templates.HeaderTemplate" Property="HeaderType" Value="Custom">
            <Setter Property="Content">
                <Setter.Value>
                    <StackLayout HorizontalOptions="FillAndExpand" Orientation="Vertical" Spacing="0" Margin="0">
                        <StackLayout HeightRequest="{Binding HeaderHeight, Source={x:Reference this}}" Orientation="Vertical" Spacing="0" Margin="0" >
                            <Label Text="ABC" HorizontalOptions="Start" VerticalOptions="EndAndExpand" />
                        </StackLayout>
                    </StackLayout>
                </Setter.Value>
            </Setter>
        </Trigger>
    </ContentView.Triggers>
</ContentView>

1 Ответ

0 голосов
/ 10 сентября 2018

Можно установить значение по умолчанию от HeaderHeight до -1

Пользовательский интерфейс должен вернуться в нормальное состояние

HeaderHeight = -1;

Как только это BindableProperty, оно должно выглядеть так:

public static readonly BindableProperty HeaderHeightProperty = BindableProperty.Create(nameof(HeaderHeight), typeof(double), typeof(HeaderTemplate), -1);
public double HeaderHeight
{
    get => (double)GetValue(HeaderHeightProperty);
    set => SetValue(HeaderHeightProperty, value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...