【问题标题】:Xamarin.Forms: Setting Rowspan programmaticallyXamarin.Forms:以编程方式设置 Rowspan
【发布时间】:2020-04-19 13:26:42
【问题描述】:

我有以下网格:

            <!--MainGrid-->
            <Grid Grid.Row="2" x:Name="maingrid_piccat">
                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>

                <Grid Grid.Row="0">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="4*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <ImageButton
                         Aspect="AspectFit"
                         Grid.Column="1"
                         Source="btn_emptydummy.png" BackgroundColor="#00000000"/>

                    <Picker x:Name="picker_maincat_pickcate" 
                            Grid.Column="1"
                            Title="Hauptkategorie"
                            FontFamily="arial"
                            BackgroundColor="#00000000"
                            TextColor="#272727"
                            HorizontalOptions="Center" 
                            VerticalOptions="Center">
                        <Picker.Items>
                            <x:String>Cat 1</x:String>
                            <x:String>Cat 2</x:String>
                            <x:String>Cat 3</x:String>
                            <x:String>Cat 4</x:String>
                        </Picker.Items>
                        </Picker>

                </Grid>

                <Grid Grid.Row="1">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="4*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <ImageButton
                         Aspect="AspectFit"
                         Grid.Column="1"
                         Source="btn_emptydummy.png" BackgroundColor="#00000000"/>

                    <Picker x:Name="picker_subcat1_pickcate" 
                            Grid.Column="1"
                            Title="Unterkategorie 01"
                            FontFamily="arial"
                            BackgroundColor="#00000000"
                            TextColor="#272727"
                            HorizontalOptions="Center" 
                            VerticalOptions="Center">
                        <Picker.Items>
                            <x:String>Subcat yx</x:String>
                            <x:String>Subcat yx</x:String>
                            <x:String>Subcat yx</x:String>
                            <x:String>Subcat yx</x:String>
                        </Picker.Items>
                    </Picker>

                </Grid>

                <Grid Grid.Row="2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="4*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <ImageButton
                         Aspect="AspectFit"
                         Grid.Column="1"
                         Source="btn_emptydummy.png" BackgroundColor="#00000000"/>

                    <Picker x:Name="picker_subcat2_pickcate" 
                            Grid.Column="1"
                            FontFamily="arial"
                            Title="Unterkategorie 02"
                            BackgroundColor="#00000000"
                            TextColor="#272727"
                            HorizontalOptions="Center" 
                            VerticalOptions="Center">
                        <Picker.Items>
                            <x:String>Subcat yx</x:String>
                            <x:String>Subcat yx</x:String>
                            <x:String>Subcat yx</x:String>
                            <x:String>Subcat yx</x:String>
                        </Picker.Items>
                    </Picker>

                </Grid>

                <Grid Grid.Row="3">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="4*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <ImageButton
                         Aspect="AspectFit"
                         Grid.Column="1"
                         Source="btn_emptydummy.png" BackgroundColor="#00000000"/>

                    <Picker x:Name="picker_subcat3_pickcate" 
                            Grid.Column="1"
                            FontFamily="arial"
                            BackgroundColor="#00000000"
                            TextColor="#272727"
                            Title="Unterkategorie 03"                                
                            HorizontalOptions="Center" 
                            VerticalOptions="Center">
                        <Picker.Items>
                            <x:String>Subcat yx</x:String>
                            <x:String>Subcat yx</x:String>
                            <x:String>Subcat yx</x:String>
                            <x:String>Subcat yx</x:String>
                        </Picker.Items>
                    </Picker>

                </Grid>

                <Grid Grid.Row="4" x:Name="row4_piccat">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="4*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <ImageButton
                        x:Name="btn_dummy_piccat"
                         Aspect="AspectFit"
                         Grid.Column="1"
                         Source="btn_emptydummy.png" BackgroundColor="#00000000"/>

                    <Entry x:Name="entry_name_pickcat" 
                            Grid.Column="1"
                            FontFamily="arial"
                           MaxLength="15"
                           Placeholder="Titel der Anzeige" 
                            BackgroundColor="#00000000"
                            TextColor="#272727"
                            HorizontalOptions="Center" 
                            VerticalOptions="Center">
                    </Entry>

                </Grid>

                <Grid Grid.Row="5" x:Name="row5_piccat">
                    <Grid.ColumnDefinitions >
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="4*" />
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <ImageButton
                         Aspect="AspectFit"
                         x:Name="btn_dummy_piccat2"
                         Grid.Column="1"
                         Source="btn_emptydummy.png" BackgroundColor="#00000000"/>

                    <Entry x:Name="entry_descri_pickcate" 
                            Grid.Column="1"
                            FontFamily="arial"
                           MaxLength="50"
                           Placeholder="Kurzbeschreibung" 
                            BackgroundColor="#00000000"
                            TextColor="#272727"
                            HorizontalOptions="Center" 
                            VerticalOptions="Center">
                    </Entry>

                </Grid>

                <Grid Grid.Row="6">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="4*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <ImageButton
                        Margin="10,10,10,10"
                        Grid.Column="1"
                        Aspect="AspectFit"
                        HorizontalOptions="Center"
                        VerticalOptions="Center"
                x:Name="name_btnfoto_pickcat"
                BackgroundColor="#00000000"
                Source="fotobutton.png" />



                </Grid>

            </Grid>

它工作正常,但现在我想更改最后两行。倒数第二行现在应该有一个文本,它采用最后两行的大小。但我似乎无法让倒数第二行跨越到最后一行。这是结果 atm:

您可以看到,这里的内容就在第一行中,但我希望它可以很好地重叠到第二行中。这是当前的代码:

private void SetLayoutForTakers()
{
    btn_dummy_piccat2.IsVisible = false;
    entry_descri_pickcate.IsVisible = false;



    Grid grid = new Grid(); //Neues Grid
    BoxView bx = new BoxView();
    Label lb = new Label();


    //Label Properties
    lb.Text = "Tipp: Sie können auch nur nach Titeln suchen, oder nach bestimmten Titeln in einer oder mehrerer Kategorien!";
    lb.TextColor = Xamarin.Forms.Color.White;
    lb.FontSize = 12;
    lb.FontFamily = "arial";

    bx.Color = Xamarin.Forms.Color.Red;

    grid.Children.Add(bx);
    grid.Children.Add(lb);
    row5_piccat.Children.Add(grid,1,1);

}

那么我怎样才能实现我的目标呢?最后,红色的boxview应该是代替了两行(最后两行)rn,它只有一个。

所有都需要以编程方式完成:-)。

谢谢!

【问题讨论】:

  • 你想达到这样的效果吗?imgur.com/a/WPuvQFr,如果是,我改变row5_piccat.Children.Add(grid, 1, 0);lb.LineBreakMode = LineBreakMode.WordWrap;
  • 这个问题有更新吗?

标签: xamarin.forms


【解决方案1】:

Grid.Children.Add 有一个重载,可让您指定跨度值

public void Add (Xamarin.Forms.View view, int left, int right, int top, int bottom);

左 Int32

列跨度的左边缘。必须大于等于 0。

正确 Int32

列跨度的右边缘。必须大于左边。风景 不会占用此列,但会在它之前停止。

顶部 Int32

行跨度的上边缘。必须大于等于 0。

底部 Int32

行跨度的底边。必须大于顶部。

【讨论】:

  • 我正在使用这个确切的功能。重载对应于网格中的列,这就是我说 Add(grid, 1, 1) 的原因。如果我将另一个重载放入下一个 2,应用程序崩溃......
  • 您使用的是什么特定代码,它会抛出什么特定异常导致崩溃?
猜你喜欢
  • 2012-11-11
  • 2016-12-09
  • 1970-01-01
  • 2021-11-21
  • 2018-11-26
  • 2011-04-18
  • 2012-07-18
  • 2016-02-15
  • 2014-07-26
相关资源
最近更新 更多