gpt4 book ai didi

c# - 在 wpf 中制作 StackPanel 及其内容 "draggable"?

转载 作者:行者123 更新时间:2023-11-30 19:18:33 25 4
gpt4 key购买 nike

我有一个 UserControl 的形式:

<UserControl>   
<Grid>
<!-- Content Here-->
<StackPanel> <!-- I want this element to be draggable within the usercontrol. -->
<Label Name = "Header" />
<Button />
<Button />
<Button />
</StackPanel>
<Grid>
</UserControl>

我的最终结果是拥有一个可以拖动按钮的控件(用户控件的一部分)..?也就是说,可移动...在 UserControl 内

我读过有关 Thumb 的内容,但我不确定如何使用它...任何想法或示例都很好。谢谢!

最佳答案

一个非常简单的方法是使用鼠标事件

首先,将您的 StackPanel 包裹在 Canvas 中,以便根据用户拖动它的位置轻松定位

接下来,将 MouseDownMouseUp 事件添加到 StackPanel。您可能需要为您的 StackPanel 提供背景颜色,以便它接收鼠标事件。

MouseDown 事件中,将 MouseMove 事件处理程序附加到 StackPanel 并让面板 capture the mouse所以所有鼠标事件都将由 StackPanel 处理。

MouseUp 事件中,分离 MouseMove 事件并释放鼠标捕获。

MouseMove 事件中,根据当前鼠标位置更改面板的 Canvas.TopCanvas.Left 属性。您需要在此处进行检查以确定鼠标是否也在 UserControl 之外,以便 StackPanel 无法被拖出屏幕。

就是这样,非常基本的拖放:)

关于c# - 在 wpf 中制作 StackPanel 及其内容 "draggable"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12320406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com