Как изменить положение времени выполнения на холсте, у кого динамически я добавил элементы управления, такие как (метки, строки). Я могу масштабировать холст со всеми элементами управления, но я не могу двигаться в другом положении с помощью MouseMove, MouseUp, MouseDown.Как изменить положение на холсте в WPF?
<Canvas Name="canvas" Width="1000" Height="400"
Margin="100 0 0 50"
Background="White"
VerticalAlignment="Bottom"
HorizontalAlignment="Center"
MouseWheel="Canvas_MouseWheel"
MouseMove="Canvas_MouseMove"
MouseUp="Canvas_MouseUp"
MouseDown="Canvas_MouseDown">
<Canvas.RenderTransform>
<ScaleTransform x:Name="st" />
</Canvas.RenderTransform>
</Canvas>
Я нахожу этот код в Интернете, но для моего случая не работает
bool activated;
Point point;
private void Canvas_MouseDown(object sender, MouseButtonEventArgs e)
{
activated = true;
point = Mouse.GetPosition(canvas);
Mouse.Capture(canvas);
}
private void Canvas_MouseMove(object sender, MouseEventArgs e)
{
if (activated)
{
double top = Canvas.GetTop(canGraph) + Mouse.GetPosition(canvas).Y - point.Y;
Canvas.SetTop(canvas, top);
double left = Canvas.GetLeft(canvas) + Mouse.GetPosition(canvas).X - point.X;
Canvas.SetLeft(canvas, left);
point = Mouse.GetPosition(canvas);
}
}
private void Canvas_MouseUp(object sender, MouseButtonEventArgs e)
{
activated = false;
Mouse.Capture(null);
}
Спасибо, я могу двигаться теперь холст, но когда я переехал в моргать все элементы в полотне , Переменный контейнер в моем случае - холст, не так ли? –
После того, как мышь, затем снова, я перемещаю холст, который начинает двигаться с первой позиции, когда был. –
У меня было несколько минут, и я заметил, что, пожалуйста, внесите изменения. Если у вас есть проблемы, я помогу, если найду какое-то время :) – kirotab