У меня есть холст WPF, программно с серией прямоугольников (скажем, 100, но число меняется каждый раз). Моя проблема в том, что мне нужно определить, какой прямоугольник щелкнул пользователь. Я думал присвоить каждому прямоугольнику другое уникальное имя и одно и то же событие «MouseLeftButtonDown» для каждого прямоугольника, но тогда я не знаю, как получить имя объекта, который был нажат. Может ли кто-нибудь мне помочь? Существует также возможность проверить, в какой точке экрана щелкнула мышь, получить координаты, а затем вычислить, какой прямоугольник вокруг этой точки, но это кажется слишком сложным для такой глупой проблемы. Спасибо заранее!Определить, какой прямоугольник был нажат в Canvas WPF
0
A
ответ
0
Вы можете получить прямоугольник по имени, как это, если все прямоугольники ограничены в OnMouseDownEvent к Rectangle_OnMouseDown Функция:
private void Rectangle_OnMouseDown(object sender, MouseButtonEventArgs e)
{
var mouseWasDownOn = e.Source as FrameworkElement;
if (mouseWasDownOn != null)
{
string elementName = mouseWasDownOn.Name;
var myRectangle = (Rectangle)this.FindName(elementName);
}
}
0
Попробуйте использовать canavas событий:
private void canvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (e.OriginalSource is Rectangle)
{
Rectangle ClickedRectangle = (Rectangle)e.OriginalSource;
// Your work here I give y some actions ...
ClickedRectangle.Opacity = 0.5;
if (e.ClickCount == 2)
{
canvas.Children.Remove(ClickedRectangle);
}
else
{
isPressed = true;
startPosition = e.GetPosition(canvas);
ClickedRectangle.CaptureMouse();
}
}
}
Смежные вопросы
- 1. Как определить, какой WPF UserControl был нажат?
- 2. Определить, какой ключ был нажат в javascript?
- 3. Какой контроль был нажат?
- 4. Как определить, какой виджет был нажат? Dojo
- 5. Как определить, какой UIBarButtomSytemItem был нажат
- 6. Где определить, какой ключ был нажат
- 7. Как определить, на какой CALayer был нажат?
- 8. GridViewColumnHeader.Click, Как определить, какой столбец был нажат?
- 9. Как определить, какой ListView был нажат?
- 10. Какой TextView был нажат?
- 11. Узнайте, какой объект был нажат на html5 Canvas
- 12. Поймите, какой картинке был нажат
- 13. JQuery: какой элемент был нажат?
- 14. Какой сегмент полилинии был нажат?
- 15. Как определить, какой символ был нажат в DIV или SPAN?
- 16. Как определить, какой номер страницы был нажат в DataPager
- 17. Какой элемент был нажат-JSP
- 18. Определить флажок был нажат JQuery?
- 19. Excel VBA: как определить, какой элемент управления был нажат?
- 20. Как определить, какой дочерний элемент элемента ListView был нажат?
- 21. Реализация MenuListener, как определить, какой JMenu был нажат?
- 22. Как определить, какой узел был нажат. Silverlight treeview
- 23. Как определить, какой элемент управления был нажат, и появился контекстMenuStrp?
- 24. Определить, какой ребенок был нажат от родителей onclick event
- 25. Есть ли способ определить, какой маркер карты Google был нажат?
- 26. Несколько кнопок отправки, как определить, какой из них был нажат?
- 27. Машинопись/Google Maps: как определить, какой маркер был нажат.
- 28. Как определить, какой элемент управления объектом был нажат?
- 29. Какой ключ был нажат? Ключи для клавиатуры
- 30. Какой ключ был нажат в функции HotKeySet
попробовать размещать код, какие вы пытались, где вы застряли :) –
Смотрите: http://stackoverflow.com/questions/1068979/wpf-rectangle-does-not-have-a-click-event – goobering
* Я не знаю, как я могу получить Имя объекта, на который был нажат. * --- В 'MouseB 'есть' отправитель' uttonEventHandler' – Bolu