[英]WPF - Listbox scrolling when an item is selected
當前,我有一個ListBox
用於執行拖放操作。 這樣做確實會發生錯誤,如果選擇了列表中的某個項目,則用戶無法在其光標單擊時使用垂直滾動條。 用戶只能使用鼠標滾輪移動此滾動條。
據我了解,我認為它試圖將滾動條計為SelectedItem
,這也許就是為什么它不能正確移動的原因,但是我仍然不確定為什么會發生這種情況。下面是相關代碼,任何有關解決此問題的幫助問題將不勝感激。
<ListBox x:Name="WriteListBox"
Height="326"
Width="190"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="428,25,0,0"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Auto"
PreviewMouseLeftButtonDown="ListBox_PreviewMouseLeftButtonDown"
PreviewMouseMove="ListBox_PreviewMouseMove"
ItemTemplate="{StaticResource ModelVariableWriteTemplate}" />
private void ListBox_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
this.mousePoint = e.GetPosition(null);
}
private void ListBox_PreviewMouseMove(object sender, MouseEventArgs e)
{
Point newPoint = e.GetPosition(null);
Vector diff = this.mousePoint - newPoint;
ListBox listBox = sender as ListBox;
var listBoxItem = listBox.SelectedItem;
if (e.LeftButton == MouseButtonState.Pressed)
{
///Drag/Drop stuff here.
}
}
ScrollViewer是ListBox的一部分,它是ListBox_PreviewMouseMove的發送對象。 我認為使ListBoxItem成為發送者,而不是ListBox,應該從該事件中刪除ScrollViewer。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.