Почему пограничный контроль WPF не имеет события mousedoubleclick?

Почему в пограничном контроле WPF нет события mousedoubleclick? У меня есть ItemsControl с некоторыми элементами макета для DataTemplate. Я хочу обработать событие двойного щелчка, чтобы открыть всплывающее диалоговое окно с подробностями, но граница, мой контейнер макета, не отображает событие.

Любые предложения о том, как получить событие двойного щелчка или переработать xaml, чтобы сделать это возможным?

26
задан Cœur 26 April 2017 в 16:33
поделиться

2 ответа

MouseDoubleClick объявлен в Control, поэтому вам просто нужен экземпляр элемента Control в вашем ItemTemplate. Проще всего использовать базовый класс Control, который не имеет другого поведения, и просто предоставить ему настраиваемый шаблон с тем, что сейчас находится в вашем ItemTemplate.

<ItemsControl>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Control MouseDoubleClick="Control_MouseDoubleClick">
                <Control.Template>
                    <ControlTemplate>
                        <Border>
                            <!--Other ItemTemplate stuff-->
                        </Border>
                    </ControlTemplate>
                </Control.Template>
            </Control>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
16
ответ дан 28 November 2019 в 06:25
поделиться

Обновление: извините, мой плохой - поздний час

Внутри события нажатия кнопки мыши получите ClickCount

 //  e.Handled = true;  optional

 if (e.ClickCount > 1)
 {
    // here comes double click and more :)
 }
6
ответ дан 28 November 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: