📜  xamarin 表单以编程方式设置元素的网格行属性 - C# (1)

📅  最后修改于: 2023-12-03 14:48:37.059000             🧑  作者: Mango

Xamarin表单以编程方式设置元素的网格行属性 - C#

在Xamarin中,当我们需要以编程方式设置表单元素的网格行属性时,我们可以使用Grid.RowProperty附加属性。在这里,我们将介绍如何使用C#代码将表单元素的行属性设置为Grid。

步骤

以下是设置行属性的步骤:

  1. 在Xamarin.Forms项目中创建一个新页面。

  2. 在XAML文件中添加一个Grid控件,设置行数和列数。

<Grid x:Name="grid">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
</Grid>
  1. 在C#文件中创建表单元素,将它们添加到Grid中,并设置它们的行属性值。
Label label1 = new Label { Text = "Label 1" };
Label label2 = new Label { Text = "Label 2" };
Label label3 = new Label { Text = "Label 3" };
Entry entry1 = new Entry { Placeholder = "Entry 1" };
Entry entry2 = new Entry { Placeholder = "Entry 2" };
Entry entry3 = new Entry { Placeholder = "Entry 3" };

grid.Children.Add(label1, 0, 0);
grid.Children.Add(entry1, 1, 0);
Grid.SetRow(label1, 0);
Grid.SetRow(entry1, 0);

grid.Children.Add(label2, 0, 1);
grid.Children.Add(entry2, 1, 1);
Grid.SetRow(label2, 1);
Grid.SetRow(entry2, 1);

grid.Children.Add(label3, 0, 2);
grid.Children.Add(entry3, 1, 2);
Grid.SetRow(label3, 2);
Grid.SetRow(entry3, 2);

以上代码将创建三个标签和三个输入框,并将它们全部添加到Grid中。之后,我们通过Grid.SetRow方法将它们每一项设置为对应的行。

结论

在Xamarin.Forms中,我们可以轻松地使用C#将表单元素的行属性设置为Grid。这样,我们就可以让表单在网格中以最佳方式布局了。

代码

完整代码可以在下面获得:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="GridDemo.MainPage">

    <Grid x:Name="grid">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
    </Grid>

</ContentPage>
using System;
using Xamarin.Forms;

namespace GridDemo
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();

            Label label1 = new Label { Text = "Label 1" };
            Label label2 = new Label { Text = "Label 2" };
            Label label3 = new Label { Text = "Label 3" };
            Entry entry1 = new Entry { Placeholder = "Entry 1" };
            Entry entry2 = new Entry { Placeholder = "Entry 2" };
            Entry entry3 = new Entry { Placeholder = "Entry 3" };

            grid.Children.Add(label1, 0, 0);
            grid.Children.Add(entry1, 1, 0);
            Grid.SetRow(label1, 0);
            Grid.SetRow(entry1, 0);

            grid.Children.Add(label2, 0, 1);
            grid.Children.Add(entry2, 1, 1);
            Grid.SetRow(label2, 1);
            Grid.SetRow(entry2, 1);

            grid.Children.Add(label3, 0, 2);
            grid.Children.Add(entry3, 1, 2);
            Grid.SetRow(label3, 2);
            Grid.SetRow(entry3, 2);
        }
    }
}