kesarling
kesarling

Reputation: 2238

No property, BindableProperty, or event found for "HeightRequest", or mismatching type between value and property error in Xamarin.Forms

Not a duplicate of Xamarin Forms No property, bindable property, or event found for 'Sku', or mismatching type between value and property

I am completely new to Xamarin.Forms and am trying my first Hello World app.
I wrote the following code:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="hello_world.MainPage">
    <StackLayout>
        <Label 
            Text="Welome" 
            BackgroundColor="Yellow" 
            TextColor="Green" 
            HeightRequest="{ConstraintExpression Type=RelativeToView, Factor=0.05, Constant=0}"
            FontSize="Medium" />
    </StackLayout>

</ContentPage>

However, I am receiving the error

No property, BindableProperty, or event found for "HeightRequest", or mismatching type between value and property.

Where am I going wrong?

Upvotes: 1

Views: 1184

Answers (3)

Divyesh
Divyesh

Reputation: 2413

What I basically want to do is to set the height of the label to 5% of the rendering device's height

Ok, so if this is only your concern then use it like this:

<RelativeLayout>
    <Label 
        Text="Welome" 
        BackgroundColor="Yellow" 
        TextColor="Green"
        RelativeLayout.HeightConstraint="{ConstraintExpression RelativeToParent,Property=Height,Factor=0.05,Constant=0}"
        RelativeLayout.WidthConstraint="{ConstraintExpression RelativeToParent,Property=Height,Factor=0.05,Constant=0}"
        FontSize="Medium" />
</RelativeLayout>

The exception you are facing is because of wrong syntax. And you have to replace your parent layout with RelativeLayout instead of StackLayout

Upvotes: 1

nevermore
nevermore

Reputation: 15806

You are putting Label inside StackLayout, while the value you use like {ConstraintExpression Type=RelativeToView, Factor=0.05, Constant=0} is using for relativelayout.

These are two different layouts and you can't mix them. Read the document and check the examples there to learn how to use them.

Feel free to ask me any question if you have:).

Update code:

<RelativeLayout>
    <Label 
        Text="Welome" 
        BackgroundColor="Yellow" 
        TextColor="Green" 
        FontSize="Medium"

        RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1}"

        RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToView, Factor=0.05,Property= Height, Constant=0}"
         />
</RelativeLayout>

Upvotes: 1

Nick Kovalsky
Nick Kovalsky

Reputation: 6462

Beg your pardon HeightRequest is a bindable property. Your case is "mismatching type between value and property", it can only be double, you cannot bind it to a ConstraintExpression.

Upvotes: 0

Related Questions