0
我有一個小的GridView與圖像。由於VisualStates(小 - > 1列,中 - > 2列,大 - > 3列),GridView更改其顯示圖像的方法。UWP GridView垂直滾動不起作用
我不能讓垂直滾動工作。
的XAML:
<GridView x:Name="MyGridView"
Grid.Row="0"
IsItemClickEnabled="True"
ItemClick="MyGridView_ItemClick"
SizeChanged="MyGridView_SizeChanged"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollMode="Enabled"
ScrollViewer.HorizontalScrollMode="Disabled">
<GridView.Resources>
<Storyboard x:Name="EnterStoryboard">
<FadeOutThemeAnimation TargetName="MyGridView" />
</Storyboard>
<Storyboard x:Name="ExitStoryboard">
<FadeInThemeAnimation TargetName="MyGridView" />
</Storyboard>
</GridView.Resources>
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:Element">
<RelativePanel x:Name="idPanel">
<Image Source="{x:Bind CoverImage}" />
</RelativePanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
和背景MyGridView_SizeChanged:
private void MyGridView_SizeChanged(object sender, Windows.UI.Xaml.SizeChangedEventArgs e)
{
var _panel = (ItemsWrapGrid)MyGridView.ItemsPanelRoot;
var _actual = VisualStateGroup.CurrentState;
int _gridColumnNumber;
switch (_actual.Name) {
case "medium":
{
_gridColumnNumber = 2;
break;
}
case "large":
{
_gridColumnNumber = 3;
break;
}
default:
{
_gridColumnNumber = 1;
break;
}
}
_panel.ItemWidth = e.NewSize.Width/_gridColumnNumber;
}
有什麼建議?
謝謝! AdaptiveGridView似乎是一個很好的工具。雖然如果代碼是正確的,那麼對我而言,錯誤在哪裏似乎很有趣。完整的項目可以通過github獲得:https://github.com/szszptr/HowItSounds – szszptr
@szszptr我在GitHub上檢查了你的源代碼。問題出在你的'RowDefinition'中。同時將行的高度設置爲自動,該行將根據其內容進行調整。所以這一行中的GridView將無法滾動。要解決這個問題,你可以像上面的例子那樣將'RowDefinition'改成''。高度設置爲*的行將獲得剩餘高度的一部分。這可以限制GridView的高度,當高度不夠時,GridView將會滾動。 –
欲瞭解更多信息,請參閱[使用XAML定義頁面佈局](https://msdn.microsoft.com/windows/uwp/layout/layouts-with-xaml)。 –