Wie lege ich die Größe eines Bildes in einer ListView fest?
Das Zielgerät ist Windows Phone 10 (dh Windows Universal Platform).
Ich habe die folgende Dokumentation entdeckt :
Beachten Sie, dass ImageCell beim Targeting von Windows Phone 8.1 standardmäßig keine Bilder skaliert. Beachten Sie außerdem, dass Windows Phone 8.1 die einzige Plattform ist, auf der Detailtext standardmäßig in derselben Farbe und Schriftart wie der Primärtext angezeigt wird. Windows Phone 8.0 rendert ImageCell wie folgt:
Ich habe es versucht:
<ListView Grid.Row="1" ItemsSource="{Binding Photos}" SelectedItem="{Binding SelectedPhoto, Mode=TwoWay}">
<ListView.ItemTemplate>
<DataTemplate>
<ImageCell ImageSource="{Binding ImageSource}" Text="{Binding Description}" TextColor="Silver" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Das obige Bild zeigt ein ausgewachsenes Bild, ohne die Größe des Bildes so einzuschränken, dass es als Listenansichtselement passt.
Ich habe auch versucht:
<ListView Grid.Row="1" ItemsSource="{Binding Photos}" SelectedItem="{Binding SelectedPhoto, Mode=TwoWay}">
<ListView.ItemTemplate>
<DataTemplate>
<Image Source="{Binding ImageSource}" Aspect="AspectFit" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Der obige Code zeigt kein Bild. Es zeigt nur einen weißen Hintergrund.
Wenige Sachen:-
ImageCell
kann die Bildbreite / -höhe (v2.0.x) nicht angeben.
Ihr zweites Beispiel ist mehr auf dem richtigen Weg, aber Sie müssen es in ein einpacken, ViewCell
wenn Sie es mit einem ListView
ähnlichen Thema zu tun haben: -
<ListView ItemsSource="{Binding Photos}" HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Image Source="{Binding MyImage}" Aspect="AspectFit" WidthRequest="{Binding MyWidth}" HeightRequest="{Binding MyHeight}" />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Beachten Sie außerdem, dass der Standardwert für a ListView
auf gleiche Zeilenhöhen festgelegt ist.
Wenn Sie unterschiedliche Bildgrößen haben, kann dies daher möglicherweise nicht zu der gewünschten Ausgabe führen.
Um dies zu umgehen, geben Sie an HasUnevenRows='True'
.
Wenn Sie weiter BindableProperties
für das tun, was Sie möchten, ImageWidth
und ImageHeight
in Ihrem ViewModel
angeben und diese wie im obigen Beispiel mit WidthRequest
und HeightRequest
für angeben, erhalten Image
Sie für die Ausgabe etwas Ähnliches, wenn Sie verschiedene Werte angeben : -
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen