Xaml 如何使堆叠面板正确对齐?

Xaml 如何使堆叠面板正确对齐?,xaml,windows-phone-7,Xaml,Windows Phone 7,在我的应用程序中,我使用了一个列表,它有四个数据1)名称2)日期3)图像4)名称 结束我使用的xaml代码 <StackPanel Orientation="Horizontal" Width="450" Height="90" HorizontalAlignment="Stretch"> <StackPanel Margin="0,0,0,0" Orie

在我的应用程序中,我使用了一个列表,它有四个数据1)名称2)日期3)图像4)名称 结束我使用的xaml代码

<StackPanel Orientation="Horizontal" Width="450" Height="90" HorizontalAlignment="Stretch">
            <StackPanel Margin="0,0,0,0" Orientation="Horizontal">
                <Grid Margin="0,0,0,0" Height="90" Width="225">
                    <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" Height="60" Margin="0,15" FontWeight="Medium" TextWrapping="Wrap" Text="{Binding Name}" Width="225" FontSize="25"/>
                    <TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" Height="39" Margin="4,51,0,0" TextWrapping="Wrap" Text="{Binding Date}" Width="221" Foreground="Gray" FontSize="16"/>
                </Grid>
                <StackPanel Orientation="Horizontal" Grid.Row="0" Width="225" HorizontalAlignment="Right">
                    <Image Name="ImgBox" Height="46" Source="/attach-30x30.png" VerticalAlignment="Center" Width="40" HorizontalAlignment="Right"/>
                    <TextBlock Text="{Binding petname}" FontSize="24" HorizontalAlignment="Right" VerticalAlignment="Center" FontFamily="Portable User Interface"/>
                </StackPanel>
            </StackPanel>
        </StackPanel>

我想要的是,我希望图像后面紧跟着petname,并且两者都应该正确对齐。 我想要的是,

但我得到的是,


有人能帮我吗?

为内部stackpanel设置FlowDirection=RighToLeft,然后交换图像和文本块的顺序

您的网格应该跨越所有控件。请尝试以下示例:

<StackPanel Orientation="Horizontal" Width="450" Height="90" HorizontalAlignment="Stretch">
                <Grid Margin="0,0,0,0" Height="90" Width="450">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <TextBlock HorizontalAlignment="Left" Grid.Column="0" VerticalAlignment="Center" Height="60" Margin="0,15" FontWeight="Medium" TextWrapping="Wrap" Text="{Binding Name}" Width="225" FontSize="25"/>
                    <TextBlock HorizontalAlignment="Left" Grid.Column="0" VerticalAlignment="Center" Height="39" Margin="4,51,0,0" TextWrapping="Wrap" Text="{Binding Date}" Width="221" Foreground="Gray" FontSize="16"/>

                    <StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right">
                        <Image Name="ImgBox" Height="46"  Source="/attach-30x30.png" VerticalAlignment="Center" Width="40"/>
                        <TextBlock Text="{Binding petname}" FontSize="24" TextAlignment="Right" VerticalAlignment="Center" FontFamily="Portable User Interface"/>
                    </StackPanel>
                </Grid>
            </StackPanel>


设置stackpanel的flowdirection=rightToLeft将使其向右对齐。但也要使其内容从右向左堆叠,因此您需要在XAML中对内容进行重新排序,这样可以很好地工作,但文本块中的某些文本不可见?您的意思是像在右侧裁剪一样?我不知道为什么,可能是屏幕右侧的文本块。。