Я пытаюсь перетащить изображение из одного места на холсте в другое (должно быть относительно просто), но не могу понять это. Образ, который я хочу, чтобы переместить имеет следующий код XAML:Перетащите изображение в WPF
<Image Height="28" HorizontalAlignment="Left" Margin="842,332,0,0" Name="cityImage" Stretch="Fill" VerticalAlignment="Top" Width="42" Source="/Settlers;component/Images/city.png" MouseLeftButtonDown="cityImage_MouseLeftButtonDown" MouseMove="cityImage_MouseMove" MouseLeftButtonUp="cityImage_MouseLeftButtonUp"/>
код следующим образом:
bool isDragging = false; Point initMousePos; private void cityImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
isDragging = true;
initMousePos = e.GetPosition(theGrid); } private void cityImage_MouseMove(object sender, MouseEventArgs e) {
if (isDragging)
{
Image image = sender as Image;
Canvas.SetTop(image, initMousePos.X);
Canvas.SetLeft(image, initMousePos.Y);
image.Visibility = System.Windows.Visibility.Visible;
} }
частный недействительным cityImage_MouseLeftButtonUp (объект отправителя, MouseButtonEventArgs е) { isDragging = ложь; }
Вы также можете добавить свойство зависимостей для свойства ImageSource UserControl, включая поддержку InotifyChanged. – Andreas