Bonjour !
Je réalise un logiciel de dessin, et pour la gomme j'utilise ceci :
Les Uielement "rectangle" sont les pixels sur le canvas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 List<Rectangle> toRemove = new List<Rectangle>(); for (int x = 0; x < (EraserThickness / 2) - 10; x++) { foreach(UIElement uielement in Canvas_board_draw.Children) { if(uielement is Rectangle) { if((Mouse.GetPosition(Canvas_board_draw).X - Canvas.GetLeft(uielement)) - 10 < x && (Mouse.GetPosition(Canvas_board_draw).X - Canvas.GetLeft(uielement)) - 10 > x - 20 && (Mouse.GetPosition(Canvas_board_draw).Y - Canvas.GetTop(uielement)) - 10 < x && (Mouse.GetPosition(Canvas_board_draw).Y - Canvas.GetTop(uielement)) - 10 > x - 20) { toRemove.Add(uielement as Rectangle); } } } } toRemove.ForEach(r => { Canvas_board_draw.Children.Remove(r); });
Pour plus de déco, j'ai ajouté un UserControl représentant la gomme (en pièce jointe) :
Le problème c'est que cette technique ne fonctionne pas bien et est très lente.
Alors voilà, est-ce que il y a moyen d'avoir la liste de tout les UIElement en dessous de mon UC pour pouvoir les supprimers, ou juste tout simplement un autre moyen
Merci



Répondre avec citation
Partager