Как создать пользовательское определение (новое) событие для пользовательского управления в WPF?
У меня есть один пользовательский элемент управления, в котором я использую один холст, и в этом холсте есть один прямоугольник
поэтому я хочу создать событие click для этого пользовательского элемента управления (canvas + rectangle), который я хочу использовать в главном окне.
вопрос в том, что я хочу создать новое событие click для этого пользователя control.so, как это сделать
любезно показать небольшой пример или показать мне код этого конкретного на
Ответы
Ответ 1
Краткий пример того, как выставить событие из UserControl, которое может зарегистрировать главное окно:
В вашем Usercontrol
1 Добавьте следующую декларацию:
public event EventHandler UserControlClicked;
2 В вашем событии UserControl_Clicked создайте событие следующим образом:
private void UserControl_MouseDown(object sender, MouseButtonEventArgs e)
{
if (UserControlClicked != null)
{
UserControlClicked(this, EventArgs.Empty);
}
}
В вашем главном окне:
Ваш usercontrol теперь будет иметь событие UserControlClicked
которое вы можете зарегистрировать на:
<local:UserControl1 x:Name="UC" UserControlClicked="UC_OnUserControlClicked" />
Ответ 2
Прочитайте также о маршрутизированных событиях.
Обзор маршрутизированных событий
Как создать настраиваемое маршрутизируемое событие
Ответ 3
Я считаю, что это проще для передачи значения в обработчик:
public event Action<string> onUserCodeFetched;
private void btnEnterClicked(object sender, RoutedEventArgs e)
{
onUserCodeFetched(PersonellCode.Text);
PersonellCode.Text = "";
}