gpt4 book ai didi

c# - WPF:在 IsMouseOver ComboBoxItem 时启动代码

转载 作者:太空狗 更新时间:2023-10-29 19:43:10 26 4
gpt4 key购买 nike

我有一个组合框。在不更改模板的情况下,有没有一种方法可以在用户将鼠标放在 ComboBoxItem 上但在选择实际发生之前启动代码?看来我应该能够指定 EventTrigger 或 Trigger 来以 ComboBoxItem 的样式执行此操作。

<ComboBox Grid.Column="1" Grid.Row="0" 
ItemsSource="{Binding Voices}"
SelectedItem="{Binding SelectedVoice, Mode=TwoWay}">
<ComboBox.Resources>
<Style TargetType="{x:Type ComboBoxItem}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
... Launch my code from code behind... but HOW? ...
</Trigger>
</Style.Triggers>
</Style>
</ComboBox.Resources>
</ComboBox>

我也可以使用 MouseEnter,但如果可能,我宁愿不构建单独的 DataTemplate 或 ContentTemplate。

更新。此代码段背后的想法是当用户将鼠标悬停在新语音上时播放测试音频,我必须从代​​码端执行此操作。帮助!

最佳答案

您可以使用EventSetter:

<ComboBox.Resources>
<Style TargetType="{x:Type ComboBoxItem}">
<EventSetter Event="PreviewMouseMove" Handler="ComboBoxItem_PreviewMouseMove" />
</Style>
</ComboBox.Resources>

在后面的代码中:

private void ComboBoxItem_PreviewMouseMove(object sender, MouseEventArgs e)
{
ComboBoxItem item = sender as ComboBoxItem;
//Now you can use this Item
}

关于c# - WPF:在 IsMouseOver ComboBoxItem 时启动代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6346124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com