【发布时间】:2021-03-01 16:09:08
【问题描述】:
我是 C# 新手。 我一直在使用 MouseDown 和 MouseMove 在 C# (wpf) 中进行测试。尝试在画布内创建一个简单的椭圆,该椭圆可以通过鼠标的点击和移动来拖动。 一切都很好,直到我运行代码,我看到当我拖动椭圆时它会抖动。 我知道对某些人来说这不是问题,但对我来说是。 接下来是我使用的 xaml 中的代码。
<Canvas>
<Ellipse x:Name="circulito" Fill="#FFFDC347" Height="100" Stroke="Black" Width="100"
MouseDown="circulito_MouseDown"
MouseMove="circulito_MouseMove"/>
</Canvas>
接下来是c#中的代码。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
Point coor;
Point coorPutin;
private void circulito_MouseDown(object sender, MouseButtonEventArgs e)
{
coor.X = Canvas.GetLeft(this);
coor.Y = Canvas.GetTop(this);
}
private void circulito_MouseMove(object sender, MouseEventArgs e)
{
coorPutin = e.GetPosition(circulito);
if (Mouse.LeftButton == MouseButtonState.Pressed)
{
Canvas.SetLeft(circulito, coor.X + coorPutin.X);
Canvas.SetTop(circulito, coor.Y + coorPutin.Y);
}
}
【问题讨论】:
-
请包含问题中的所有相关代码,以便我们进行复制。您没有
circulito_MouseUp的例程,这应该会生成CS1061错误。 -
抱歉,我忘了删除“MouseUp = circulito_MouseUp”
标签: c# wpf drag-and-drop mousemove mousedown