我正在尝试设计一个联系信息表,包括电话,电子邮件或类似符号等图标列,我想将它们与下一栏中的文字对齐
icon | Telephone:
| +1212354567
icon | Email:
| x@y.com
是否有任何布局可以在功能上与Androids RelativeLayout进行比较?我尝试使用网格布局,但这似乎容易出错并且不够准确。我不想将我的布局划分为列和行,而是想描述它们在RelativeLayout中使用的位置(toLeft,toRight,AlignParentBottom等)。
可以将StackPanel与LinearLayout进行比较,我想避免使用它,因为它不适合我当前的设计。
Windows Phone和Android Layouts之间是否有任何比较我可以定位? This one不完整,不会为RelativeLayout提供建议。
感谢您的帮助!
答案 0 :(得分: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>
答案 1 :(得分:1)
没有可比较的面板,但有冒险精神的人可以创建一个。关于如何做到这一点有很多文章,但这里有一个供参考。 http://www.switchonthecode.com/tutorials/wpf-tutorial-creating-a-custom-panel-control
那就是说,没有理由不将Grid用于你想要做的事情。它不是“容易出错”或“不够准确”。不过,SharedSizeGroup应该成为你的朋友。