How can I position a label in the top 66% of a Grid with C#
I am using this C# code to create a grid with a Label inside and then add it to the details element:
details.Children.Clear();
var grid = new Grid()
{
VerticalOptions = LayoutOptions.FillAndExpand,
Margin = new Thickness(60, 20, 60, 20)
};
grid.Children.Add(new Label
{
Text = msg,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
TextColor = (Color) Application.Current.Resources["FooterTextColor"],
Style = (Style)footerText
});
details.Children.Add(grid);
This works but what I would like to have is a label that is not in the center (as it is now) but in the center of the top 2/3 of the grid.
Can anyone give me advice on how I can do this?
xamarin xamarin.forms
add a comment |
I am using this C# code to create a grid with a Label inside and then add it to the details element:
details.Children.Clear();
var grid = new Grid()
{
VerticalOptions = LayoutOptions.FillAndExpand,
Margin = new Thickness(60, 20, 60, 20)
};
grid.Children.Add(new Label
{
Text = msg,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
TextColor = (Color) Application.Current.Resources["FooterTextColor"],
Style = (Style)footerText
});
details.Children.Add(grid);
This works but what I would like to have is a label that is not in the center (as it is now) but in the center of the top 2/3 of the grid.
Can anyone give me advice on how I can do this?
xamarin xamarin.forms
use another Layout container within your Grid to align the Label, or use Padding/Margin settings to align the Label, etc
– Jason
Nov 20 at 13:22
Using another layout sounds like a good solution but I am not sure how to do this in C#. I think Padding / Margin might not work in my case as I want it to be a proportion.
– Alan2
Nov 20 at 13:27
add a comment |
I am using this C# code to create a grid with a Label inside and then add it to the details element:
details.Children.Clear();
var grid = new Grid()
{
VerticalOptions = LayoutOptions.FillAndExpand,
Margin = new Thickness(60, 20, 60, 20)
};
grid.Children.Add(new Label
{
Text = msg,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
TextColor = (Color) Application.Current.Resources["FooterTextColor"],
Style = (Style)footerText
});
details.Children.Add(grid);
This works but what I would like to have is a label that is not in the center (as it is now) but in the center of the top 2/3 of the grid.
Can anyone give me advice on how I can do this?
xamarin xamarin.forms
I am using this C# code to create a grid with a Label inside and then add it to the details element:
details.Children.Clear();
var grid = new Grid()
{
VerticalOptions = LayoutOptions.FillAndExpand,
Margin = new Thickness(60, 20, 60, 20)
};
grid.Children.Add(new Label
{
Text = msg,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
TextColor = (Color) Application.Current.Resources["FooterTextColor"],
Style = (Style)footerText
});
details.Children.Add(grid);
This works but what I would like to have is a label that is not in the center (as it is now) but in the center of the top 2/3 of the grid.
Can anyone give me advice on how I can do this?
xamarin xamarin.forms
xamarin xamarin.forms
asked Nov 20 at 13:13
Alan2
1,44854132252
1,44854132252
use another Layout container within your Grid to align the Label, or use Padding/Margin settings to align the Label, etc
– Jason
Nov 20 at 13:22
Using another layout sounds like a good solution but I am not sure how to do this in C#. I think Padding / Margin might not work in my case as I want it to be a proportion.
– Alan2
Nov 20 at 13:27
add a comment |
use another Layout container within your Grid to align the Label, or use Padding/Margin settings to align the Label, etc
– Jason
Nov 20 at 13:22
Using another layout sounds like a good solution but I am not sure how to do this in C#. I think Padding / Margin might not work in my case as I want it to be a proportion.
– Alan2
Nov 20 at 13:27
use another Layout container within your Grid to align the Label, or use Padding/Margin settings to align the Label, etc
– Jason
Nov 20 at 13:22
use another Layout container within your Grid to align the Label, or use Padding/Margin settings to align the Label, etc
– Jason
Nov 20 at 13:22
Using another layout sounds like a good solution but I am not sure how to do this in C#. I think Padding / Margin might not work in my case as I want it to be a proportion.
– Alan2
Nov 20 at 13:27
Using another layout sounds like a good solution but I am not sure how to do this in C#. I think Padding / Margin might not work in my case as I want it to be a proportion.
– Alan2
Nov 20 at 13:27
add a comment |
1 Answer
1
active
oldest
votes
You'll need to add RowDefinitions
to the Grid
:
grid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (2, GridUnitType.Star) });
grid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Star) });
Note the GridLength
: it splits the grid height 2:1 between the first row and second row.
You can then assign your label to the first row:
Label myLabel = new Label
{
Text = msg,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
TextColor = (Color) Application.Current.Resources["FooterTextColor"],
Style = (Style)footerText
};
grid.Children.Add(myLabel, 0, 0); // Split (view, row, column)
add a comment |
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%2f53393803%2fhow-can-i-position-a-label-in-the-top-66-of-a-grid-with-c-sharp%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You'll need to add RowDefinitions
to the Grid
:
grid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (2, GridUnitType.Star) });
grid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Star) });
Note the GridLength
: it splits the grid height 2:1 between the first row and second row.
You can then assign your label to the first row:
Label myLabel = new Label
{
Text = msg,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
TextColor = (Color) Application.Current.Resources["FooterTextColor"],
Style = (Style)footerText
};
grid.Children.Add(myLabel, 0, 0); // Split (view, row, column)
add a comment |
You'll need to add RowDefinitions
to the Grid
:
grid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (2, GridUnitType.Star) });
grid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Star) });
Note the GridLength
: it splits the grid height 2:1 between the first row and second row.
You can then assign your label to the first row:
Label myLabel = new Label
{
Text = msg,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
TextColor = (Color) Application.Current.Resources["FooterTextColor"],
Style = (Style)footerText
};
grid.Children.Add(myLabel, 0, 0); // Split (view, row, column)
add a comment |
You'll need to add RowDefinitions
to the Grid
:
grid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (2, GridUnitType.Star) });
grid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Star) });
Note the GridLength
: it splits the grid height 2:1 between the first row and second row.
You can then assign your label to the first row:
Label myLabel = new Label
{
Text = msg,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
TextColor = (Color) Application.Current.Resources["FooterTextColor"],
Style = (Style)footerText
};
grid.Children.Add(myLabel, 0, 0); // Split (view, row, column)
You'll need to add RowDefinitions
to the Grid
:
grid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (2, GridUnitType.Star) });
grid.RowDefinitions.Add (new RowDefinition { Height = new GridLength (1, GridUnitType.Star) });
Note the GridLength
: it splits the grid height 2:1 between the first row and second row.
You can then assign your label to the first row:
Label myLabel = new Label
{
Text = msg,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
TextColor = (Color) Application.Current.Resources["FooterTextColor"],
Style = (Style)footerText
};
grid.Children.Add(myLabel, 0, 0); // Split (view, row, column)
answered Nov 20 at 14:03
Tom
991615
991615
add a comment |
add a comment |
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f53393803%2fhow-can-i-position-a-label-in-the-top-66-of-a-grid-with-c-sharp%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
use another Layout container within your Grid to align the Label, or use Padding/Margin settings to align the Label, etc
– Jason
Nov 20 at 13:22
Using another layout sounds like a good solution but I am not sure how to do this in C#. I think Padding / Margin might not work in my case as I want it to be a proportion.
– Alan2
Nov 20 at 13:27