How to use converters with RelativeLayout.XConstraint?
I want to center an image inside its RelativeLayout
the equation for the X point should be = (width of parent - width of the view)/2..
I tried to write it in XAML:
<RelativeLayout x:Name="rel1">
<Image x:Name="image1" Aspect="AspectFit"
RelativeLayout.XConstraint="{ConstraintExpression Type=Constant,
Constant={Binding Source=rel1, Path=Width, Converter={StaticResource centerFromWidth},
ConverterParameter={Binding Source=image1, Path=Width}}}"
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent,
Property=Height, Factor=0.5, Constant=0}"
Source="{Binding File1, Converter={StaticResource base64ToImage}}">
</Image>
<RelativeLayout.GestureRecognizers>
<TapGestureRecognizer Command="{Binding OpenImagePopupCommand}" CommandParameter="1"/>
</RelativeLayout.GestureRecognizers>
</RelativeLayout>
and this is the converter:
public class FromDimensionToCenter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var parentWidth = (double)value;
var viewWidth = (double)parameter;
return (parentWidth - viewWidth) / 2;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
But I get this error:
No property, bindable property, or event found for 'Constant', or
mismatching type between value and property.
c# xamarin xamarin.forms relativelayout
add a comment |
I want to center an image inside its RelativeLayout
the equation for the X point should be = (width of parent - width of the view)/2..
I tried to write it in XAML:
<RelativeLayout x:Name="rel1">
<Image x:Name="image1" Aspect="AspectFit"
RelativeLayout.XConstraint="{ConstraintExpression Type=Constant,
Constant={Binding Source=rel1, Path=Width, Converter={StaticResource centerFromWidth},
ConverterParameter={Binding Source=image1, Path=Width}}}"
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent,
Property=Height, Factor=0.5, Constant=0}"
Source="{Binding File1, Converter={StaticResource base64ToImage}}">
</Image>
<RelativeLayout.GestureRecognizers>
<TapGestureRecognizer Command="{Binding OpenImagePopupCommand}" CommandParameter="1"/>
</RelativeLayout.GestureRecognizers>
</RelativeLayout>
and this is the converter:
public class FromDimensionToCenter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var parentWidth = (double)value;
var viewWidth = (double)parameter;
return (parentWidth - viewWidth) / 2;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
But I get this error:
No property, bindable property, or event found for 'Constant', or
mismatching type between value and property.
c# xamarin xamarin.forms relativelayout
You could see in the source code that "Constant" is not BindableProperty,so I think that is where the error is, maybe you could customize Relelayout by adding a property of type BindableProperty .
– Leo Zhu - MSFT
Jan 2 at 3:04
You could refer to this link to center your Image :stackoverflow.com/questions/40942691/…
– Leo Zhu - MSFT
Jan 2 at 6:35
add a comment |
I want to center an image inside its RelativeLayout
the equation for the X point should be = (width of parent - width of the view)/2..
I tried to write it in XAML:
<RelativeLayout x:Name="rel1">
<Image x:Name="image1" Aspect="AspectFit"
RelativeLayout.XConstraint="{ConstraintExpression Type=Constant,
Constant={Binding Source=rel1, Path=Width, Converter={StaticResource centerFromWidth},
ConverterParameter={Binding Source=image1, Path=Width}}}"
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent,
Property=Height, Factor=0.5, Constant=0}"
Source="{Binding File1, Converter={StaticResource base64ToImage}}">
</Image>
<RelativeLayout.GestureRecognizers>
<TapGestureRecognizer Command="{Binding OpenImagePopupCommand}" CommandParameter="1"/>
</RelativeLayout.GestureRecognizers>
</RelativeLayout>
and this is the converter:
public class FromDimensionToCenter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var parentWidth = (double)value;
var viewWidth = (double)parameter;
return (parentWidth - viewWidth) / 2;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
But I get this error:
No property, bindable property, or event found for 'Constant', or
mismatching type between value and property.
c# xamarin xamarin.forms relativelayout
I want to center an image inside its RelativeLayout
the equation for the X point should be = (width of parent - width of the view)/2..
I tried to write it in XAML:
<RelativeLayout x:Name="rel1">
<Image x:Name="image1" Aspect="AspectFit"
RelativeLayout.XConstraint="{ConstraintExpression Type=Constant,
Constant={Binding Source=rel1, Path=Width, Converter={StaticResource centerFromWidth},
ConverterParameter={Binding Source=image1, Path=Width}}}"
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent,
Property=Height, Factor=0.5, Constant=0}"
Source="{Binding File1, Converter={StaticResource base64ToImage}}">
</Image>
<RelativeLayout.GestureRecognizers>
<TapGestureRecognizer Command="{Binding OpenImagePopupCommand}" CommandParameter="1"/>
</RelativeLayout.GestureRecognizers>
</RelativeLayout>
and this is the converter:
public class FromDimensionToCenter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var parentWidth = (double)value;
var viewWidth = (double)parameter;
return (parentWidth - viewWidth) / 2;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
But I get this error:
No property, bindable property, or event found for 'Constant', or
mismatching type between value and property.
c# xamarin xamarin.forms relativelayout
c# xamarin xamarin.forms relativelayout
asked Jan 1 at 13:27


mshwfmshwf
2,29142156
2,29142156
You could see in the source code that "Constant" is not BindableProperty,so I think that is where the error is, maybe you could customize Relelayout by adding a property of type BindableProperty .
– Leo Zhu - MSFT
Jan 2 at 3:04
You could refer to this link to center your Image :stackoverflow.com/questions/40942691/…
– Leo Zhu - MSFT
Jan 2 at 6:35
add a comment |
You could see in the source code that "Constant" is not BindableProperty,so I think that is where the error is, maybe you could customize Relelayout by adding a property of type BindableProperty .
– Leo Zhu - MSFT
Jan 2 at 3:04
You could refer to this link to center your Image :stackoverflow.com/questions/40942691/…
– Leo Zhu - MSFT
Jan 2 at 6:35
You could see in the source code that "Constant" is not BindableProperty,so I think that is where the error is, maybe you could customize Relelayout by adding a property of type BindableProperty .
– Leo Zhu - MSFT
Jan 2 at 3:04
You could see in the source code that "Constant" is not BindableProperty,so I think that is where the error is, maybe you could customize Relelayout by adding a property of type BindableProperty .
– Leo Zhu - MSFT
Jan 2 at 3:04
You could refer to this link to center your Image :stackoverflow.com/questions/40942691/…
– Leo Zhu - MSFT
Jan 2 at 6:35
You could refer to this link to center your Image :stackoverflow.com/questions/40942691/…
– Leo Zhu - MSFT
Jan 2 at 6:35
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53995817%2fhow-to-use-converters-with-relativelayout-xconstraint%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53995817%2fhow-to-use-converters-with-relativelayout-xconstraint%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You could see in the source code that "Constant" is not BindableProperty,so I think that is where the error is, maybe you could customize Relelayout by adding a property of type BindableProperty .
– Leo Zhu - MSFT
Jan 2 at 3:04
You could refer to this link to center your Image :stackoverflow.com/questions/40942691/…
– Leo Zhu - MSFT
Jan 2 at 6:35