Android RelativeLayout for Windows Phone

Android RelativeLayout for Windows Phone,layout,windows-phone-8,windows-phone,Layout,Windows Phone 8,Windows Phone,我目前正试图为联系人信息设计一个表格,其中包括一列图标,如电话、电子邮件或类似符号,我希望将它们与下一列中的文本对齐 icon | Telephone: | +1212354567 icon | Email: | x@y.com 是否有任何布局在功能上可以与之相比?我尝试使用网格布局,但这似乎容易出错,不够精确。我不想将布局划分为列和行,而是想描述它们在RelativeLayout(toLeft、toRight、AlignParentBottom等)中使用的位置 Stack

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

icon | Telephone:
     | +1212354567
icon | Email:
     | x@y.com
是否有任何布局在功能上可以与之相比?我尝试使用网格布局,但这似乎容易出错,不够精确。我不想将布局划分为列和行,而是想描述它们在RelativeLayout(toLeft、toRight、AlignParentBottom等)中使用的位置

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


在Windows Phone和Android的布局之间有什么可以比较的地方吗?是不完整的,并且没有提供相关建议。

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

我会用网格和堆栈面板来构建它

<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>

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

我会用网格和堆栈面板来构建它

<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>

没有可比较的面板,但有冒险精神的人可以创建一个。关于如何做到这一点,有很多文章,但这里有一篇供参考


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

没有可以比较的面板,但有冒险精神的人可以创建一个。关于如何做到这一点,有很多文章,但这里有一篇供参考


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

是的,这将是我目前最后的希望。我习惯于避免Android的嵌套布局,因此我希望有一个类似于我曾经知道和喜欢的RelativeLayout的东西:)这样我可以只使用一个StackPanel,而不必为每个点添加一个新的StackPanel。这不是Android。StackPanel和Grid是您在XAML中最好的朋友。通常,您将使用带有DataTemplate的ItemsControl,因此您不必“为每个点添加一个新的StackPanel”(框架将为您这样做)。我仍在研究数据绑定。我以为它只适用于LongListSelector。我可以将网格或StackPanel与相同的功能结合起来吗?是的,这将是我现在最后的希望。我习惯于避免Android的嵌套布局,因此我希望有一个类似于我曾经知道和喜欢的RelativeLayout的东西:)这样我可以只使用一个StackPanel,而不必为每个点添加一个新的StackPanel。这不是Android。StackPanel和Grid是您在XAML中最好的朋友。通常,您将使用带有DataTemplate的ItemsControl,因此您不必“为每个点添加一个新的StackPanel”(框架将为您这样做)。我仍在研究数据绑定。我以为它只适用于LongListSelector。我可以将网格或StackPanel与相同的功能结合起来吗?谢谢你的回答。SharedSizeGroup看起来很有希望。如果我想将一个单元格链接到另一个单元格,我只需要将所需的参数添加到此组,它将定位在第一个单元格上?SharedSizeGroup允许来自一个或多个网格的列或行共享相同的大小。例如,如果为使用网格的ListItems创建模板,则可能希望该网格中的列在每个列表项中具有相同的宽度。谢谢你的链接。但是,SharedSizeGroup仅对桌面上的WPF可用。正如标签所示,我一直在寻找Windows Phone解决方案。啊。。。是的,我必须道歉。我是一名WPF开发人员,对Silverlight/Phone来说是相当陌生的,这是一个我没有意识到有区别的地方。以下是一篇SO帖子,其中包含一些解决方法:。你也可以用自己的面板来“修复”这个问题,但这不是小事,你可能需要创建一个RelativeLayoutPanel。谢谢你的回答。SharedSizeGroup看起来很有希望。如果我想将一个单元格链接到另一个单元格,我只需要将所需的参数添加到此组,它将定位在第一个单元格上?SharedSizeGroup允许来自一个或多个网格的列或行共享相同的大小。例如,如果为使用网格的ListItems创建模板,则可能希望该网格中的列在每个列表项中具有相同的宽度。谢谢你的链接。但是,SharedSizeGroup仅对桌面上的WPF可用。正如标签所示,我一直在寻找Windows Phone解决方案。啊。。。是的,我必须道歉。我是一名WPF开发人员,对Silverlight/Phone来说是相当陌生的,这是一个我没有意识到有区别的地方。以下是一篇SO帖子,其中包含一些解决方法:。也可以使用您自己的面板“修复”此问题,但这并非小事,您可能需要创建一个RelativeLayoutPanel。