簡體   English   中英

WPF-選定項目時滾動列表框

[英]WPF - Listbox scrolling when an item is selected

當前,我有一個ListBox用於執行拖放操作。 這樣做確實會發生錯誤,如果選擇了列表中的某個項目,則用戶無法在其光標單擊時使用垂直滾動條。 用戶只能使用鼠標滾輪移動此滾動條。

據我了解,我認為它試圖將滾動條計為SelectedItem ,這也許就是為什么它不能正確移動的原因,但是我仍然不確定為什么會發生這種情況。下面是相關代碼,任何有關解決此問題的幫助問題將不勝感激。

XAML

<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM