Событие ComboBoxItem PointerEntered не запускается в UWP? - PullRequest
0 голосов
/ 06 апреля 2020
<Grid>
<ComboBox x:Name="ColorRepresentationComboBox" Margin="0,12,0,0"  Width="120" >
<ComboBoxItem x:Name="HEXComboBoxItem" Content="HEX" PointerPressed="HEXComboBoxItem_PointerPressed"/>
<ComboBoxItem x:Name="HSLComboBoxItem" Content="HSL" PointerPressed="HSLComboBoxItem_PointerPressed"/>
</ComboBox>
   </Grid>



private void HEXComboBoxItem_PointerPressed(object sender, PointerRoutedEventArgs e)
{

}

private void HSLComboBoxItem_PointerPressed(object sender, PointerRoutedEventArgs e)
{

}

Событие PointerEntered работает правильно, но событие pointerPressed не вызывается. Не знаю почему?

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

В этом случае должно быть, что событие PointerPressed было специально обработано внутри ComboBox.

Если вы хотите захватить событие нажатия ComboBoxItem, вы можете рассмотреть возможность использования события Tapped.

<ComboBoxItem x:Name="HEXComboBoxItem" Content="HEX" Tapped="HEXComboBoxItem_Tapped"/>
private void HEXComboBoxItem_Tapped(object sender, TappedRoutedEventArgs e)
{
    Debug.WriteLine("tapped");
}

Если вы просто хотите получить Выбранный элемент после изменения ComboBox выбранного элемента, вы можете использовать этот метод:

<ComboBox SelectionChanged="ComboBox_SelectionChanged">
    <ComboBoxItem x:Name="HEXComboBoxItem" Content="HEX" Tapped="HEXComboBoxItem_Tapped"/>
</ComboBox>
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var item = (sender as ComboBox).SelectedItem as ComboBoxItem;
    // do other things...
}

Спасибо.

0 голосов
/ 06 апреля 2020

Здесь есть простое решение здесь . В нем говорится:

Эти события должны обрабатываться не через XAML, а через метод AddHandler.

SomeButton.AddHandler(PointerPressedEvent, 
    new PointerEventHandler(SomeButton_PointerPressed), true); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...