WPF 拖动滚动功能无法正常工作

2024-01-14

我想在我的应用程序中实现拖动滚动功能,但在路上遇到了问题。有谁能够帮助我? 我有一个 ScrollViewer,里面有一个 ItemsControl,在 ItemsTemplate 中我有一个 UserControl。我想将该 UserControl 拖动到 ItemsControl 中。当我拖动到 ItemsControl 的边界时,我希望 ScrollViewer 向下滚动。

protected override void OnPreviewMouseMove(System.Windows.Input.MouseEventArgs e)
{
    if (this.IsMouseCaptured)
    {
        // Get the new mouse position. 
        Point mouseDragCurrentPoint = e.GetPosition(this);

        if (Math.Abs(mouseDragCurrentPoint.Y - this.ActualHeight) <= 50)
        {
            this._scrollStartOffset.Y += 5;
            _containingScrollViewer.ScrollToVerticalOffset(this._scrollStartOffset.Y);
        }
        if (mouseDragCurrentPoint.Y <= 50)
        {
            this._scrollStartOffset.Y -= 5;
            _containingScrollViewer.ScrollToVerticalOffset(this._scrollStartOffset.Y);
        }
    }
    base.OnPreviewMouseMove(e);
}

当我开始通过调用拖动时DragDrop.DoDragDrop()滚动不会发生。但是当我禁用拖动时,ScrollViewer 会根据鼠标位置向下滚动。 也许我没有考虑到拖动和捕获鼠标的问题? 感谢您的关注。 加雷金


当使用 DragDrop.DoDragDrop() 时,我使用一个处理 Me.DragOver 事件(在 VB 中)的 Sub,因此它看起来如下。请注意,我的控件有一个包含在 ScrollViewer 中的 ListBox。

Private Sub ListBox_Items_DragOver(ByVal sender As System.Object, ByVal e As System.Windows.DragEventArgs) Handles Me.DragOver
        Dim currentMousePoint As Point = e.GetPosition(_containtingScrollViewer)
        If Math.Abs(currentMousePoint.Y - _containtingScrollViewer.ActualHeight) <= 50 Then
            _containtingScrollViewer.ScrollToVerticalOffset(currentMousePoint.Y + 5)
        End If
        If currentMousePoint.Y <= 50 Then
            _containtingScrollViewer.ScrollToVerticalOffset(currentMousePoint.Y - 5)
        End If
End Sub

这使我能够在拖动项目时滚动。您可以根据需要调整容差以获得更好/更平滑的滚动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 拖动滚动功能无法正常工作 的相关文章

  • 拖动元素时是否禁用 mousemove 事件?

    我试图通过在拖动元素时观察文档上的 mousemove 事件来移动元素 使用 html5 拖放 我在文档的父元素上添加了一个 mousemove 侦听器 每当我移动鼠标时都会触发该监听器 但是一旦我开始拖动另一个子元素 我就不再看到 mou
  • 列表视图上的 TextBlock:如何忽略 TextBlock 中的点击并让列表视图处理它们

    我有一个显示大量信息的列表视图 但是当它为空时 我想在其上覆盖一个文本块 上面写着 没有要显示的信息 或 bla bla bla 添加信息 列表视图设置为响应鼠标单击 但现在如果我单击文本块 这些事件将路由到文本块 我怎样才能让这些事件转到
  • 更改鼠标悬停时的矩形背景

    所以我有一个没有背景的矩形 当用户将鼠标悬停在其上时 我想给它一个背景渐变 然后当鼠标离开矩形时删除渐变 请有人发布所需的代码 并告诉我将其放在 cs xaml 文件中的位置吗 Thanks This
  • Wpf TextBlock 中的垂直文本

    是否可以垂直显示 TextBlock 中的文本 以便所有字母彼此堆叠 不使用 LayoutTransform 旋转 还没有人提到使用纯 XAML 垂直堆叠任意字符串的字母 不旋转它们 的明显而简单的方法
  • Kendo Ui 像 Windows 桌面一样可拖动

    我需要模拟桌面图标拖放 我这样做 draggable kendoDraggable container desktop hint function return draggable clone dragend function e cons
  • WPF - 如何从 DataGridRow 获取单元格?

    我有一个具有交替行背景颜色的数据绑定 DataGrid 我想根据单元格包含的数据对单元格进行不同的着色 我已经尝试过该线程建议的解决方案 http wpf codeplex com Thread View aspx ThreadId 511
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • WPF 绑定 CompositeCollection 中的 MenuItem 不起作用

    我在将命令绑定到复合集合中的菜单项时遇到问题 这MenuItem是其一部分ContextMenu这是定义在UserControl Resources 问题是新标签的绑定不起作用 当我将 MenuItem 放置在复合集合之外时 它将起作用 有
  • 需要“依赖属性”的简短而清晰的定义

    我试图弄清楚依赖属性到底是什么 但是当我在任何地方寻找定义时 我只找到 如何使用 而不是 它是什么 想象一下 您在面试时被问到 什么是依赖属性 你的答案是什么 DependencyProperty 是一个属性 其值取决于 或可以取决于 某些
  • 给图像着色[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试着色System Windows Controls Image 该图像包含透明区域 我只是想用颜色给非透明区域着色 例如 图
  • PreviewKeyDown 不会在 ElementHost 中针对 Tab 和箭头键触发

    我在 Winforms ElementHost 中有一个 WPF 窗口 我的窗口上的 Tab 键和箭头键不会触发 KeyDown 和 PreviewKeyDown 事件 KeyUp 和 PreviewKeyUp 似乎工作正常 Preview
  • 是什么导致 WPF 打印机输出被光栅化?

    我在 WPF 中遇到了许多打印问题 其中正在打印的特定项目组合会突然触发打印机输出的光栅化 导致打印机输出丑陋且庞大 并可能导致打印每页需要 30 秒 我发现在控件上设置任何级别的不透明度之类的事情通常会触发此问题 我忘记了它还有什么作用
  • 强制 IDataErrorInfo 验证

    我在某个面板上有两个控件 文本框和组合框
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标
  • wpf,如何限制TextBox的MaxLength?

  • WPF根据数据类型设置样式?

    问题就在这里 我将 TreeView 与几种不同类型的对象绑定 每个对象都是一个节点 有些对象有一个名为 IsNodeExpanded 的属性 当然 有些对象则没有 这是我的风格 现在 问题是当绑定不具有此属性的项目时 我们在输出中收到此错
  • 列表框未使用绑定填充

    我正在尝试使用 mvvm 模式将现有程序转换为 c wpf 第一部分是选择要处理的文件的文件夹位置并填充列表框 我在这里找到了一个使用 Mvvm Light 的示例 WPF OpenFileDialog 与 MVVM 模式 https st
  • 如何使取消按钮像“X”按钮一样工作?

    在我的 XAML 文件中 我有一个窗口 我试图将其设置为无论用户单击 X 按钮还是单击 取消 按钮 行为都是相同的 我的缩写代码如下 public partial class Dialog Window private void Windo
  • WPF - 关闭 App.g.cs 中 Main 的自动生成

    我正在学习WPF 我想在 App xaml cs 中提供我自己的 Main 方法 而不是在 App g cs 中为我生成一个方法 然而 我不断遇到冲突 因为我还没有找到如何阻止生成额外的 Main 我的项目文件或其他地方是否有控制此设置的设
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装

随机推荐

  • 如何使用 VueJS 防止数字输入

    我需要创建一个验证来防止用户在文本框中输入数字 我找到了一些使用本机 JavaScript 的解决方案 但它在我这边不起作用 在我的文本框中我有这个触发器 v on keyup preventNumericInput event gt 在我
  • Node.js:EBADF,错误文件描述符

    如果我多次重新加载我的应用程序 从浏览器中使用重新加载按钮 例如50 reload 10 seconds它给了我这个错误 events js 45 throw arguments 1 Unhandled error event Error
  • 迁移工作项数据时出错[重复]

    这个问题在这里已经有答案了 迁移工作项数据时出现以下错误 由于以下原因 配置失败 com opshub exceptions DataVaIidationException OpsHub 012017 字段 映射名称 10 1 I 31XD
  • HTML 重复 ID

    我的控件是根据用户输入动态构建的 有nID 也是动态的文本框 然而 我没有预见到这个 HTML 会在同一 html 页面的其他地方重用 我现在面临的问题是重复的 ID 这导致我的 jQuery 函数无法正常工作 我确实明白 ID 应该是唯一
  • Math.Net 解值为 0 的线性方程组

    我试图在 Math Net 中求解矩阵 当矩阵的实际解之一为 0 时 但我得到 NaN 作为结果 这是一个示例矩阵 为简单起见已对其进行了简化 1 0 1 10000 0 1 1 1000 0 0 0 0 代码示例 public void
  • 重构 Form_for 创建多态关联中注释的方法

    我正在研究我的第一个多态关联关系 但在重构我的 form for 创建评论时遇到了麻烦 我尝试浏览多态协会 RailsCastshttp railscasts com episodes 154 polymorphic association
  • .htaccess,将404错误重写到其他域

    如何将所有 404 错误重定向到另一个域 我找到了 Error 404 http example com error html 但是我需要 if Error 404 http example com 1 我试过了 RewriteEngine
  • python 中的随机()

    在Python中的函数random 均匀地生成半开范围 0 0 1 0 内的随机浮点数 原则上它能生成 0 0 即零 和 1 0 即统一 吗 实际应用中是什么样的场景呢 0 0可以生成 1 0不能 因为它不在范围内 因此 相对于 生成概率0
  • 在 Swift 中将图像(或视频)发布到服务器

    您好 我正在使用 NSURLSession 快速将 json 数据发布到服务器 如下所示 var request NSMutableURLRequest URL NSURL string http mypath com var sessio
  • 2016 年最佳密码存储算法

    实际上我读了很多与算法相关的帖子 比如md5 sha1等等 但我仍然不确定哪一种是当今最安全且最好使用的 我是网络开发的初学者 我要求世界上所有最好的程序员来教我并向我展示 我希望你们能给我选择和使用它的例子 谢谢 顺便 2016 年如何安
  • Django、apache、mod_wsgi - 错误:脚本标头过早结束

    Apache 以调试模式登录 Tue Dec 21 11 36 33 2010 info client 1 53 149 114 mod wsgi pid 24831 process mysite application mysite co
  • 按键对 React Native 部分列表进行排序和分组

    我有一个部分列表 其中填充了来自 firebase 的数据 该列表显示按日期划分的事件信息 当前月份显示为THIS MONTH和其他日期使用其速记值JAN FEB etc 我得到的数据很好并且可以很好地显示它 但我不知道如何按日期对数据数组
  • 使用具有多个条件的 If 语句

    我编写了以下代码 基本上应该相应地为一些框着色 每当我运行此代码时 它都会运行第一种情况 即即使需要选择其他情况也是如此 这是代码 Sub Macro quaterly If Sheet2 Range B6 Value 1 Or 2 Or
  • 如何选择每组的前N行

    我的三重存储中有一些数据 例如 Subject Predicate Object
  • ASP.NET HttpContext 缓存在插入后立即删除

    我有一个 ASP NET 4 Web 服务 它有一个ImportModule行动在一个ModuleController控制器 这就是它的工作原理 用户将模块上传为 CSV 文件 正在使用该文件读取HttpPostedFileBase Inp
  • PHP 致命错误:在非对象上调用成员函数bind_param() [重复]

    这个问题在这里已经有答案了 我有以下代码 statement mysqli gt prepare INSERT INTO paypal transactions txn id payer email mc gross mc currency
  • Go的interface{}和C中的void*一样吗?

    由于类型变量interface 可以有任何值 这是否意味着它本质上是一个像 C 中的 void 一样的通用指针 而C的void 指针和 Go 的interface 变量共享可以存储任意类型的属性 但有一个很大的区别 Go 接口变量还存储它们
  • 可以用jade/pug 编写PHP 吗?

    是否可以 如果是这样 怎么办 如果不是 如果我需要在文档中编写 PHP 我是否必须放弃 pug 环顾四周后 我没有找到任何人解决了这个问题 您可以将 PHP 嵌入到 Pug 模板中 就像您希望通过相对不受干扰的任何文字纯文本一样 有文档中涵
  • Xcode 11 升级 |找不到 iPhone X 模拟器 | XRPackageModel 9.0.omo

    自从升级后还有其他人得到这个Xcode 10 3 https developer apple com documentation xcode release notes xcode 10 3 release notes to Xcode 1
  • WPF 拖动滚动功能无法正常工作

    我想在我的应用程序中实现拖动滚动功能 但在路上遇到了问题 有谁能够帮助我 我有一个 ScrollViewer 里面有一个 ItemsControl 在 ItemsTemplate 中我有一个 UserControl 我想将该 UserCon