Как можно реализовать перемещение кнопки мышью по форме? Ранее я это делал в WinForm вот так:
bool iMove = false;
Point dot;
void nazatie(object sender, MouseEventArgs e)///MouseDown
{
Button temp = sender as Button;
if(e.Button == MouseButtons.Left)
{
iMove = true;
dot = e.Location;
}
}
void naved(object sender, MouseEventArgs e)///MouseMove
{
Button temp = sender as Button;
if (iMove)
{
temp = (Button)sender;
temp.Top += e.Y - dot.Y;
temp.Left += e.X - dot.X;
}
}
Как перемещение кнопки можно сделать в wpf, используя мышь?
В WPF идея такая же: запоминать точку клика и двигать по дельте. Нюанс в том, что контролы имеют абсолютные координаты только внутри Canvas
(ну или с помощью отступов).
MainWindow.xaml
<Window x:Class="MouseMovableControl.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas>
<Label x:Name="btn" Content="Movable"
MouseDown="Btn_OnMouseDown"
MouseMove="Btn_OnMouseMove"
MouseUp="Btn_OnMouseUp" />
</Canvas>
</Window>
MainWindow.xaml.cs
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace MouseMovableControl
{
public partial class MainWindow
{
private Point? _movePoint;
public MainWindow() => InitializeComponent();
private void Btn_OnMouseDown(object sender, MouseButtonEventArgs e)
{
_movePoint = e.GetPosition(btn);
btn.CaptureMouse();
}
private void Btn_OnMouseUp(object sender, MouseButtonEventArgs e)
{
_movePoint = null;
btn.ReleaseMouseCapture();
}
private void Btn_OnMouseMove(object sender, MouseEventArgs e)
{
if (_movePoint == null)
return;
var p = e.GetPosition(this) - (Vector)_movePoint.Value;
Canvas.SetLeft(btn, p.X);
Canvas.SetTop(btn, p.Y);
}
}
}
Конкретно батоны двигать несколько затруднительно, потому что они проглатывают сообщения о кликах мыши.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В зависимости от некоторого условия, количество вызовов Method2 не должно превышать 3Тест проверяет, срабатывает ли эта логика для конкретного...