2009-03-06 7 views
0

Надеюсь, кто-то может помочь, потому что я не смог это понять. Вот мой код xaml для всплывающего/комбинированного поля, пожалуйста, не существует другого кода до и после этого для остальной части макета.WPF Combo box + MouseLeftButtonDown

<Popup x:Name="popupMethods" Height="400" Width="150" 
     StaysOpen="False" Placement="Bottom" IsOpen="false" 
     HorizontalAlignment="Left"> 
       <ComboBox x:Name="combo" MouseLeftButtonDown="combo_MouseDown"> 
        <TextBlock>Hello</TextBlock> 
        <TextBlock>World</TextBlock> 
        <TextBlock>This</TextBlock> 
        <TextBlock>is</TextBlock> 
        <TextBlock>Autocomplete</TextBlock> 
        <TextBlock>Textbox</TextBlock> 
       </ComboBox> 
    </Popup> 

Устанавливает ли оно всплывающее окно на экране всякий раз, когда пользователь начинает печатать, что работает. Проблема в том, что я хочу, чтобы пользователь мог щелкнуть одно из слов в поле со списком и вставить в текстовое поле. Эти части, не работающие как MouseLeftButtonDown, никогда не запускаются. Я попробовал несколько различных методов, включая один с этого сайта http://www.designerwpf.com/2008/12/03/getting-a-mouseleftbuttondown-or-mouseleftbuttonup- событий из-вашего-текстовое поле/

, а также один я видел где-то еще, что было combo.MouseLeftButtonDown + = делегатом {};

Спасибо за любую помощь.

ответ

0

Возможно, вы захотите посмотреть на событие SelectionChanged. Он срабатывает всякий раз, когда выбирается элемент в выпадающем списке ComboBox.

Я думаю, что ComboBox внутренне обрабатывает событие MouseLeftButtonDown, и это заставляет его не передавать ваш код.

2

Вместо MouseLeftButtonDown обработчик события, используйте PreviewMouseLeftButtonDown, вы можете достичь того же.