0

我有列表框,我在里面放了一些标签。

 <ListBox x:Name="lstContacts">
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel>
                                            <HyperlinkButton Height="30" Margin="-10,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Content="{Binding PhoneType, Converter={StaticResource CntctConverter}}" Style="{StaticResource HyperlinkButtonStyle}"/>
                                            <TextBlock Height="30" HorizontalAlignment="Left" Text="{Binding PhoneNumber}" Width="250" Foreground="{StaticResource TitleBrush}" Tap="lblMobile_Tap" VerticalAlignment="Top"/>
                                            <TextBlock Height="30" Text="{Binding CallRate}" HorizontalAlignment="Right" Foreground="{StaticResource TitleBrush}" Margin="0,-30,0,0" VerticalAlignment="Top"/>
                                    </StackPanel>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>

我的最后一个标签应该在最右边,因为我将其水平对齐到右边。但它来到中心。请看截图

在此处输入图像描述

请建议我在哪里犯了任何错误

4

2 回答 2

0

这与 ListBox 的默认 Horizo​​ntalAlignment 有关。它默认为左。您需要将其更改为 Stretch。

<ListBox>
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalAlignment" Value="Stretch"/>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>
于 2012-08-07T06:29:34.680 回答
0

由于第一个 TextBox 宽度值,您的 StackPanel 宽度为 250,因此看起来第二个 TextBlock 正确定位在右侧。

您需要通过向其添加 Width 值来增加堆栈面板的宽度。

于 2012-08-08T09:31:44.410 回答