[英]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.