Ich habe ein kleines GridView mit Bildern. Die GridView ändert seine Methode, um die Bilder anzuzeigen, die auf VisualStates zurückzuführen sind (klein-> 1 Spalte, mittel-> 2 Spalte, groß-> 3 Spalte).UWP GridView Vertikales Scrollen funktioniert nicht
Ich kann das vertikale Scrollen nicht funktionieren.
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>
Und Hintergrund 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;
}
Irgendwelche Vorschläge?
Danke! AdaptiveGridView scheint ein gutes Werkzeug zu sein. Obwohl, wenn der Code korrekt ist, scheint es für mich interessant, wo der Fehler ist. Das vollständige Projekt ist auf GitHub erreichbar: https://github.com/szszptr/HowItSounds – szszptr
@szszptr Ich habe Ihren Quellcode auf GitHub überprüft. Das Problem liegt in deiner 'RowDefinition'. Wenn Sie die Höhe der Zeile auf "Auto" einstellen, wird die Zeile an den Inhalt angepasst. Daher kann das GridView in dieser Zeile nicht gescrollt werden. Um dieses Problem zu beheben, können Sie die 'RowDefinition' in' 'wie im obigen Beispiel ändern. Die Zeile, deren Höhe auf * eingestellt ist, erhält einen Teil der verbleibenden Höhe. Dies kann die GridView-Höhe begrenzen, und wenn die Höhe nicht ausreicht, kann die GridView gescrollt werden. –
Weitere Informationen finden Sie unter [Definieren von Seitenlayouts mit XAML] (https://msdn.microsoft.com/windows/uwp/layout/layouts-with-xaml). –