Windows 8中的ListView对齐问题

时间:2013-04-05 05:55:13

标签: xaml listview windows-8 alignment

我有一个奇怪的问题,我尝试了我知道的每个技巧,将放置在网格内的ListView对齐。无论如何,它看起来都是左对齐的。 ListView的宽度和高度是数据绑定的。 (宽度可以取值350或700,高度可以取100或200,具体取决于尺寸设置。如果尺寸设置紧凑,则应为350x100,如果正常为700x200)。

这是xaml代码

<Grid x:Name="GridPageLVPortrait" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="4" Background="Beige" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,0,584.714,0" Width="781">
   <ListView x:Name="PageLVPortrait" ItemsSource="{Binding}" CanReorderItems="True" AllowDrop="True" HorizontalAlignment="Center" SelectionMode="Single" IsSwipeEnabled="True" IsItemClickEnabled="True" SelectionChanged="PageLVPortraitSelectionChanged" ItemClick="PageLVPortraitItemClick" Height="{Binding TemplateHeight}" Width="{Binding TemplateWidth}" >
        <ListView.ItemTemplate>
             <DataTemplate>
                 <Canvas HorizontalAlignment="Center" Width="{Binding TemplateWidth}" Height="{Binding TemplateHeight}">
                     <Canvas.Background>
                          <ImageBrush ImageSource="{Binding PageBackground}"/>
                     </Canvas.Background>
                     <Image HorizontalAlignment="Center" Height="{Binding TemplateHeight}" Width="{Binding TemplateWidth}" Source="{Binding Page}" Stretch="None" Opacity="1" CacheMode="BitmapCache" />

                     <StackPanel x:Name="EditDeleteStackPanel" Width="{Binding TemplateWidth}" Height="{Binding TemplateHeight}" Opacity="0.95">
                         <Button x:Name="NoteDelete"  HorizontalAlignment="Right"   VerticalAlignment="Top" Foreground="{x:Null}" Tapped="NoteDelete_Tapped" MinWidth="50" MinHeight="50" Margin="0,0,10,0" BorderBrush="{x:Null}" >
                            <Button.Background>
                                <ImageBrush ImageSource="{Binding Delete}"/>
                            </Button.Background>
                         </Button>
                         <Button x:Name="NoteEdit"  HorizontalAlignment="Right"   VerticalAlignment="Top"   FontFamily="Segoe Script" FontSize="24" BorderBrush="{x:Null}" Tapped="NoteEdit_Tapped" Foreground="{x:Null}" MinWidth="50" MinHeight="50" Margin="0,0,10,0">
                            <Button.Background>
                                <ImageBrush ImageSource="{Binding Edit}"/>
                            </Button.Background>
                         </Button>                             
                     </StackPanel>
                 </Canvas>
             </DataTemplate>
        </ListView.ItemTemplate>
   </ListView>
</Grid>

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

我已尝试使用您提供的常规维度约定(700x200)的整页网格中的代码。如果我忽略网格的Margin="0,0,584.714,0",列表视图确实会居中对齐。如果您需要页面右侧的584px,我会说更好地将网格列放在那里。

答案 1 :(得分:0)

我找到了这个问题。这是因为主网格吐成4列。由于这个使用了柱子,因此对齐变得混乱。