Как создать пользовательское определение (новое) событие для пользовательского управления в 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" />

Ответ 3

Я считаю, что это проще для передачи значения в обработчик:

public event Action<string> onUserCodeFetched;

private void btnEnterClicked(object sender, RoutedEventArgs e)
        {
            onUserCodeFetched(PersonellCode.Text);
            PersonellCode.Text = "";
        }