WPF Как получить UserControl для наследования кнопки?

Я создал UserControl, который состоит из пары эллипсов и меток. Я добавил это отлично в другую форму, и все выглядело довольно шикарно.

Затем я начал добавлять некоторые обработчики событий и обнаружил, что элемент управления, который я создал, не отображает событие Click. К сожалению. Легко исправить, верно? Просто вернитесь к выделенному коду на UserControl, который я сделал, и позвольте ему наследовать Button.

К сожалению, это вызвало сообщение «Частичные объявления MyControl не должны указывать разные базовые классы». Это стало неожиданностью, так как я не объявил никаких других базовых классов. Поиск рассматриваемого Частичного также не дал результатов.

Есть ли способ победить эту проблему? Если нет, то какой будет самый простой обходной путь здесь? Моя цель - просто получить событие Click в UserControl.

13.12.2008 06:34:54
1 ОТВЕТ
РЕШЕНИЕ

Да, вы объявили другие базовые классы :) Просто доверяйте компилятору :)

Когда вы пишете <UserControl ...></UserControl>в XAML, вы создаете подкласс UserControl. Если вы хотите создать подкласс Button, используйте <Button ...></Button>вместо него и «: Button» в файле code-behind.

Но я настоятельно рекомендую вам не создавать подклассы для Button, это слишком сложная задача для вас. Вы можете использовать событие MouseLeftButtonUp вместо события Click.

14
13.12.2008 09:06:57
Событие MouseLeftButtonUp зависит от кнопки, которую всегда нажимает мышь. Когда пользователь нажимает клавишу пробела, вызывается событие Click, но MouseLeftButtonUp не запускается (пробел не является левой кнопкой мыши).
Marian Spanik 21.01.2015 08:33:48