0

我目前正在尝试为联系信息设计一个表格,其中包括电话、电子邮件或类似符号等图标的列,我想将它们与下一列中的文本对齐

icon | Telephone:
     | +1212354567
icon | Email:
     | x@y.com

是否有任何布局可以在功能上与Android 的 RelativeLayout进行比较?我尝试使用网格布局,但这似乎容易出错且不够精确。我不想将我的布局划分为列和行,而是想描述它们在 RelativeLayout 中使用的位置(toLeft、toRight、AlignParentBottom 等)。

StackPanel 可以与 LinearLayout 进行比较,我想避免使用它,因为它不适合我当前的设计。

Windows Phone 和 Android 布局之间是否有我可以定位的比较?这个是不完整的,没有为RelativeLayout提供建议。

4

2 回答 2

2

我知道你说过你不想使用网格,但我觉得在这种情况下你必须这样做。

不过,我会用网格和堆栈面板来构建它。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>

    <!-- Image for first row item -->
    <Image Grid.Column="0" Grid.Row="0" Source="icon-url" />
    <!-- Container for the details of the first row item -->
    <StackPanel Grid.Column="1" Grid.Row="0">
        <TextBlock Text="Telephone:" />
        <TextBlock Text="+1212354567" />
    </StackPanel>

    <!-- Image for second row item -->
    <Image Grid.Column="0" Grid.Row="1" Source="icon-url" />
    <!-- Container for the details of the second row item -->
    <StackPanel Grid.Column="1" Grid.Row="1">
        <TextBlock Text="Email:" />
        <TextBlock Text="x@y.com" />
    </StackPanel>

    <!-- Just add rows to the grid to continue the list -->
</Grid>
于 2012-12-11T15:04:31.073 回答
1

没有可比较的面板,但有冒险精神的人可以创建一个。有很多关于如何做到这一点的文章,但这里有一篇供参考。http://www.switchonthecode.com/tutorials/wpf-tutorial-creating-a-custom-panel-control

也就是说,没有理由不使用 Grid 来做你想做的事情。它不是“容易出错”或“不够准确”。不过,SharedSizeGroup 应该在这里成为您的朋友。

于 2012-12-12T15:02:05.300 回答