Перемещение:
grid.Children.Add( svgImage );
grid.Children.Add( label );
после того, как вы настроили определения строк / столбцов, а затем измените на:
grid.Children.Add(svgImage, 0, 0);
grid.Children.Add(label, 0, 1);
В основном вы должны указать сетке, какая строка/ колонка для размещения ваших элементов.Добавив их в таблицу перед инициализацией определений столбцов, ColumnDefinition
по умолчанию установили в GridLength.Star
.
Я убрал ваш код.Обратите внимание, что я изменил назначения Height
.
Label label = new Label()
{
Text = "Some text" // Just some placeholder text
};
SvgCachedImage svgImage = new SvgCachedImage()
{
HorizontalOptions = LayoutOptions.CenterAndExpand,
VerticalOptions = LayoutOptions.CenterAndExpand
};
Grid grid = new Grid();
// NOTE: use GridLength class to set the Height/Width of rows/columns
RowDefinition row = new RowDefinition()
{
Height = new GridLength(1, GridUnitType.Star)
}
ColumnDefinition column1 = new ColumnDefinition()
{
Width = new GridLength(1, GridUnitType.Auto)
}
ColumnDefinition column2 = new ColumnDefinition()
{
Width = new GridLength(1, GridUnitType.Star)
}
// Use existing instances of the definitions
grid.RowDefinitions.Add(row1);
grid.ColumnDefinitions.Add(column1);
grid.ColumnDefinitions.Add(column2);
grid.Children.Add(svgImage, 0, 0);
grid.Children.Add(label, 1, 0);
Когда я печатал это, я заметил, что вы просто установили для свойства Width
значение GridLength.Star/Auto
.Согласно документам , вы должны использовать GridLength
класс , а не Enum.