代码之家  ›  专栏  ›  技术社区  ›  Alan2

在哪里可以找到如何设置ColumnDefinition的默认宽度?

  •  0
  • Alan2  · 技术社区  · 4 年前

    我有这个代码,我想转换 ColumnDefinition 在第一行使用新语法。

    有人能给我解释一下这种情况是什么吗 <ColumnDefinition /> 用于:

    <Grid Margin="5,5,5,0" >
    
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition Width="50" />
        </Grid.ColumnDefinitions>
    
        <Grid.GestureRecognizers>
            <TapGestureRecognizer Tapped="TitleTapped" />
        </Grid.GestureRecognizers>
    
        <t:FaqTemplate
            HorizontalOptions="Start"
            Text="{Binding Source={x:Reference _accordion_view_123}, Path=Title}"
            VerticalOptions="CenterAndExpand" />
    
        <ContentView
            x:Name="_indicatorContainer"
            Grid.Column="1"
            Content="{Binding Source={x:Reference _accordion_view_123}, Path=IndicatorView}"
            HorizontalOptions="End"
            VerticalOptions="Start" />
    </Grid>
    
    0 回复  |  直到 4 年前
        1
  •  3
  •   Marius Bughiu    4 年前

    使用新语法,这将转换为:

    <Grid ColumnDefinitions="*, 50">
    

    有关新语法的完整规范,请阅读以下内容: https://github.com/microsoft/microsoft-ui-xaml/issues/673

    基本上, <ColumnDefinition /> 相当于 <ColumnDefinition Width="*" /> ( * 是的默认值 Width 属性)。

    列的宽度可以用3种方式表示:

    • Auto 意味着列将在可用空间内根据内容自动调整大小
    • 绝对值,如 50 ,在这种情况下,列将是50个密度无关的像素宽
    • * 实际上相当于 1* . * 允许按比例分割可用空间。例如,如果有一列 1* 3* ,列A将占25%(1/4),列B将占75%(3/4)。

    在您的特定情况下,第二列的固定值为 50 * 50 减去。

    您可以在这里查看不同的示例:

        2
  •  0
  •   Koenigsberg    4 年前

    50 和一个默认属性。具有默认属性的是 <ColumnDefinition /> .

    查看 学习这个系列:

    https://www.youtube.com/playlist?list=PLdo4fOcmZ0oU10SXt2W58pu2L0v2dOW-1

    这是微软的官方系列,也是学习Xamarin最基本的入门。