WPF Custom TextBox ContextMenuОткрытие проблемы - PullRequest
0 голосов
/ 21 апреля 2010

У меня есть проблема с пользовательским элементом управления, который я написал, не вызывая его событие ContextMenuOpening, когда я подключаю его программно. Элемент управления в основном является оболочкой для стандартного TextBox:

public class MyTextBox : TextBox
{
    public MyTextBox()
    {
        this.ContextMenuOpening += new ContextMenuEventHandler(MyTextBox_ContextMenuOpening);
    }

    void MyTextBox_ContextMenuOpening(object sender, ContextMenuEventArgs e)
    {
        MessageBox.Show("ContextMenuOpening event fired");
    }
}

Нет ничего подозрительного и в XAML:

<local:MyTextBox Height="25" Width="300"/>

По какой-то причине я никогда не смогу запустить событие. Я пытаюсь перехватить контекстное меню, чтобы я мог изменить его (оно зависит от контекста), и действительно стараюсь избегать подключения события везде, где используется элемент управления - конечно, это возможно?

1 Ответ

2 голосов
/ 21 апреля 2010

Оказывается, вам нужно, чтобы Explicity установил ContextMenu в null при создании объекта:

public MyTextBox()
{
    this.ContextMenu = null;
    this.Initialized += (s, e) =>
        ContextMenuOpening += new ContextMenuEventHandler(MyTextBox_ContextMenuOpening);
}

Тогда это работает удовольствие:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...