In UWP wird jedes Mal, wenn eine ListViewItem
ausgewählt wird, ein Storyboard ausgelöst, um dem Benutzer das Gefühl zu geben, dass die Komponente auf den Druck einer Berührung reagiert. Dieses Storyboard ändert auch die Hintergrundfarbe der ListViewItem
, bis sie freigegeben wird.Wie ändert man das visuelle Verhalten eines ListViewItem in UWP?
Ich habe eine UserControl
entworfen, die eine ListView
intern verwendet, aber möchte dieses Verhalten überschreiben, da es nicht wirklich das vorgeschlagene Design der Anwendung passt.
Bellow sind die VisualStateGroups
Ich habe versucht, sowohl durch seine ControlTemplate
zum ListView
anzuwenden und ListViewItem
durch seine DataTemplate
Definition als der frühere Versuch schlug fehl.
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="PointerOver" />
<VisualState x:Name="Pressed" />
<VisualState x:Name="PointerOverPressed" />
<VisualState x:Name="Disabled" />
</VisualStateGroup>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Focused" />
<VisualState x:Name="UnFocused" />
<VisualState x:Name="PointerFocused" />
</VisualStateGroup>
<VisualStateGroup x:Name="SelectionStates">
<VisualState x:Name="Unselecting" />
<VisualState x:Name="Unselected" />
<VisualState x:Name="UnselectedPointerOver" />
<VisualState x:Name="UnselectedSwiping" />
<VisualState x:Name="Selecting" />
<VisualState x:Name="Selected" />
<VisualState x:Name="SelectedSwiping" />
<VisualState x:Name="SelectedUnfocused" />
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
Eine Möglichkeit könnte sein, das Stammnetz der DataTemplate
zum ItemsContainer
zu binden, so dass ich das Standardverhalten jedes Mal ein Element ausgewählt wurde außer Kraft setzen könnte. Aber ich bin nicht so versiert in XAML und konnte nicht den richtigen Weg finden, dies alleine zu tun.
Ist das irgendwo dokumentiert? Details finden Sie unter https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.primitives.listviewitempresenter nicht – Trevor