Я пытался переместить (удерживая левую кнопку мыши и перетащить) a UIElement
на Canvas
в Wpf.
Это сработало для Rectangle
, но когда я попытался сделать то же самое с Path
форма не двигается.
Вот макет , всего 2 элемента внутри холста:
<Canvas Background='Beige'
Name='canvas'>
<Rectangle Width='50'
Height='50'
Fill='LightPink'
Canvas.Left='350'
Canvas.Top='175'
MouseMove='OnMouseMove'
Name='square' />
<Path Fill="Cyan"
Stroke="Black"
MouseMove='OnMouseMove'>
<Path.Data>
<GeometryGroup>
<EllipseGeometry Center="20, 40"
RadiusX="20"
RadiusY="40" />
<EllipseGeometry Center="20, 40"
RadiusX="10"
RadiusY="30" />
</GeometryGroup>
</Path.Data>
</Path>
</Canvas>
А вот код позади :
private void OnMouseMove(object sender, MouseEventArgs e)
{
if (e.Source is Shape shape)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
Point p = e.GetPosition(canvas);
Canvas.SetLeft(shape, p.X - shape.Width / 2);
Canvas.SetTop(shape, p.Y - shape.Height / 2);
}
}
}
Path
представляет собой Shape
, как Rectangle
, и OnMouseMove
выполняется для обоих элементов управления.
Почему только Rectangle
движется, а Path
- нет?