У меня есть один пользовательский элемент управления, в котором я использую один холст, и в этом холсте есть один прямоугольник поэтому я хочу создать событие click для этого пользовательского элемента управления (canvas + rectangle), который я хочу использовать в главном окне. вопрос в том, что я хочу создать новое событие click для этого пользователя control.so, как это сделать любезно показать небольшой пример или показать мне код этого конкретного на
Как создать пользовательское определение (новое) событие для пользовательского управления в WPF?
Ответ 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 = "";
}