Tag: 拖动

没有Window_LocationChanged()的C#WPF DragMove

我在Windows窗体中实现了类似于DragMove的东西,但边界设置为主屏幕边距的10个单位。 当切换到WPF时,我发现这个线程对于实现相同的结果很有用。 但是,由于这是一个移动后事件,所发生的情况是,如果我的窗口被拖到我设置的边界之外,它会“跳回”。 我想避免这种影响,因为它看起来很糟糕。 有没有一种简单的方法可以避免在不使用LocationChanged事件的情况下将窗口移动到给定区域之外? 我基本上想要在窗口发生之前限制窗口的移动。

XNA游戏不会在“拖动”窗口,任何事件处理程序时更新?

我是XNA和C#的新手,我已经到了我的XNA项目,我需要事件处理程序来预测游戏何时失去焦点,以便我可以在再次获得焦点后同步音乐和视觉效果。 但是我遇到了一个问题; 被拖动时游戏不会“更新”,但我似乎无法为此找到合适的事件监听器。 我试过了: System.Windows.Forms.Control.FromHandle(Window.Handle).Move += new EventHandler(DeactivateGame); 移动窗口时,这个叫做“DeactivateGame”很多次。 但即使它工作,尽管它不止一次调用该函数,我看不到一个事件处理程序,当窗口句柄被释放时调用一个函数,以便通过调用“ActivateGame”再次恢复游戏 旁注(如果有帮助的话); this.Activated += new EventHandler(NotifyActivated); this.Deactivated += new EventHandler(NotifyDeactivated); 这些事件处理程序在最小化窗口或将焦点放在除游戏窗口之外的其他内容时工作正常,但它不会注册被拖动的窗口。 对于习惯编程的人来说可能很明显,但我只是想确保我已经提供了足够的信息 编辑:我想要添加的事件作为事件处理程序的结果是一个DateTime / TimeSpan,当窗口失焦或拖动时调用它。 当丢弃或再次聚焦时,这将比较当前时间与窗口失去焦点时设置的时间,以计算两者之间的丢失时间。

CefSharp中的可拖动无边框窗口

我想在一些HTML元素上使用拖动逻辑实现无边框窗口。 我找到了一些有用的例子(比如Chrome的无框窗口 ),这就是我尝试过的: .title-area { -webkit-app-region: drag; } A draggable area 然后,在C#代码中我实现了IDragHandler类: internal class PromtDragHandler : IDragHandler { bool IDragHandler.OnDragEnter(IWebBrowser browserControl, IBrowser browser, IDragData dragData, DragOperationsMask mask) { return false; } void IDragHandler.OnDraggableRegionsChanged(IWebBrowser browserControl, IBrowser browser, IList regions) { } } 方法OnDraggableRegionsChanged在开始时触发一次,OnDragEnter在我拖动元素“title-area”的某些文本时触发。 但我不知道接下来要做什么让我的窗户移动? UPDATE。 如评论中所述, CefTestApp支持此拖动function。 在源代码中,我们有从DragHandler调用的方法OnSetDraggableRegions: void RootWindowWin::OnSetDraggableRegions( const std::vector& regions) { REQUIRE_MAIN_THREAD(); // […]

在桌面上拖动WPF表单

我正在尝试制作ac#WPF表单,我可以通过单击它并用鼠标移动来将其拖动到屏幕上。 forms特征包括完全透明且仅包含一个图像。 这就是说窗口样式为none,它不会显示在任务栏中。 因此,当应用程序运行时,您基本上可以看到的只是一个小图像 – 理想情况下,如果我单击并按住鼠标左键并将其移动,我希望能够将其拖动到桌面上。 有谁知道一个简单的方法,我可以完成这个或我忽略了function的构建? 谢谢。

C#:如何从表单和控件中拖出一个?

我使用以下代码通过单击并拖动表单本身来拖动无边框表单。 它可以工作,但它不适用于单击并拖动窗体上的控件。 我需要能够在单击某些控件时拖动它而不是其他控件 – 按标签拖动,但不要通过按钮和文本框拖动。 我该怎么做? protected override void WndProc(ref Message m) { base.WndProc(ref m); const int WM_NCHITTEST = 0x84; const int HTCLIENT = 0x1; const int HTCAPTION = 0x2; if (m.Msg == WM_NCHITTEST && (int)m.Result == HTCLIENT) m.Result = (IntPtr)HTCAPTION; }

拖动时WPF列表框自动滚动

我有一个具有ListBox的WPF应用程序。 拖动机制已经实现,但是当列表太长并且我想将项目移动到不可见的位置时我不能。 例如,屏幕显示10个项目。 我有20件物品。 如果我想将最后一项拖到第一个位置,我必须拖到顶部并放下。 向上滚动并再次拖动。 如何使ListBox自动滚动?

单击并拖动WPF中的选择框

是否可以在WPF中实现鼠标单击和拖动选择框。 是否应该通过简单地绘制矩形,计算其点的坐标和评估此框内其他对象的位置来完成? 还是有其他方法吗? 你能给一些示例代码或链接吗?

如何在Canvas中拖动UserControl

我正在编写我的第一个WPF应用程序。 我有一个Canvas,用户可以在其中添加包含表单的UserControl子类。 用户应该能够在Canvas周围拖动这些UserControl。 使用WPF执行此操作的最佳做​​法是什么? 谢谢。