我正在將Windows 8.1應用程序遷移到Windows 10通用應用程序,並且我在GridView
中獲得了不同的外觀。不同於Win8.1到Win10的GridView佈局
在Windows 8.1,它正確的行爲,並顯示兩行(或更多,高度依賴):
GridView
顯然有足夠的空間來包裹兩行,但無論高度如何,它仍然是一行。兩者都使用相同的XAML定義:
<GridView Name="MyGridView"
Margin="0,50,0,0"
IsItemClickEnabled="True"
ItemsSource="{Binding AppPages}">
....
</GridView>
我已經在Windows 10應用程序嘗試不同的ItemsPanel
變化,但我要麼得到1行的水平佈局,或1列垂直佈局。在Windows 10中是否有新屬性,或者我需要設置什麼以允許GridView
在高度允許時顯示多行?
編輯
所描述的行爲僅僅是使用默認設置GridView
。我曾嘗試以下還有:
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid Orientation="Vertical" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
既Vertical
方向和Horizontal
。但Windows 8.1應用程序和Windows 10應用程序的佈局沒有指定任何內容,只有GridView
及其ItemTemplate
。下面是GridView
整個XAML:
<GridView x:Name="MainGridView"
IsItemClickEnabled="True"
ItemsSource="{Binding AppPages}"
SelectionMode="None">
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="ItemClick">
<core:CallMethodAction MethodName="GridViewItemClick" TargetObject="{Binding Mode=OneWay}" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
<GridView.ItemTemplate>
<DataTemplate>
<Border Width="200"
Height="200"
BorderBrush="White"
BorderThickness="2">
<Grid>
<Image Width="150"
Height="150"
VerticalAlignment="Bottom"
Source="{Binding Path=ImageSource}" />
<TextBlock HorizontalAlignment="Center"
FontSize="12"
FontWeight="Bold"
Foreground="White"
Text="{Binding Path=PageName}" />
</Grid>
</Border>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="Margin" Value="10" />
</Style>
</GridView.ItemContainerStyle>
</GridView>
你修改的'模板風格GridView'?它看起來像你改變'ListView'的'ItemsStackPanel'的'GridView'的ItemsWrapGrid對我...您可以創建一個新項目並嘗試'GridView',它可以很好地運行在Windows 8.1應用程序中。 –