[英]Customize DragUI of ListViewItem (UWP)
ListView提供了一個DragItemsStarting事件,該事件帶有相應的事件args。 但是,與其他元素共有的DragStartingEventArgs不同,據我所知,它沒有提供DragUI。 我唯一的選擇是使用DragView事件,這很煩人。
因此,我改為說我將使ListViewItem的內容可拖動。 但是,這事與願違,因為現在Click事件不再通過,或者很少通過。 簡而言之,我可以自定義DragUI而不單擊我的ListItems,或者DragUI看起來很糟糕,但是我保留了我的功能。
是否可以獲取自定義DragUI並讓ListView處理單擊?
您仍然可以使用DragStarting
,但是必須將其添加到DataTemplate
的項目內容本身中:
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<Grid CanDrag="True" DragStarting="ItemDragStartingHandler">
...
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
如果這導致click事件無法正常運行,則可以嘗試自定義ListViewItem
容器本身,這可能會起作用。 在設計器或“文檔大綱”窗口中右鍵單擊ListView
,選擇“ 編輯其他模板” ,然后選擇“ 編輯生成的項目容器” 。 從最后一個菜單中選擇“ 編輯副本...”。
您將獲得一個可能很長的Style
,但是在其中可以找到以下內容:
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<ListViewItemPresenter DragStarting="ItemDragStartingHandler" x:Name="Root" ...>
您可以將DragStarting
事件應用於ListViewItemPresenter
,這可能會滿足您的需求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.