Quantcast
Channel: Xamarin.Forms — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 89864

RelativeLayout code to XAML translation

$
0
0

Hi all,

I've got some sample c# code that I'm trying to translate into XAML because that's the standard we are using on our project. There's a piece of relativelayout code that I'm struggling to create a correct layout for. It's to get an image displayed in the middle of a contentpage:

       `relativeLayout.Children.Add(
            face,
            Constraint.RelativeToParent(parent => ((parent.Width / 2) - (face.Width / 2))),
            Constraint.RelativeToParent(parent => parent.Height * .25),
            Constraint.RelativeToParent(parent => parent.Width * .5),
            Constraint.RelativeToParent(parent => parent.Width * .5)
        );

        face.SizeChanged += (sender, e) => {
            relativeLayout.ForceLayout();
        };`

So far I've translated this to:

`<RelativeLayout HorizontalOptions="CenterAndExpand" HeightRequest="100">
    <Image Source="profile1.png"
                HorizontalOptions="Center"
                VerticalOptions="Center"
                RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.5}"
                RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.25}"
                RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.5}"
                RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.5}">         
    </Image>
</RelativeLayout>`

The bit that I'm unable to understand is how to base a constraint on the dimension on the parent and some other object simultaneously [ i.e. this expression ((parent.Width / 2) - (face.Width / 2))]

In XAML, there is only the RelativeToParent type of constraint.

thanks


Viewing all articles
Browse latest Browse all 89864

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>