gpt4 book ai didi

c# - WPF NotifyIcon不触发MouseEnter事件(显示工具提示时如何更新NotifyIcon View 模型)

转载 作者:行者123 更新时间:2023-12-03 10:35:55 24 4
gpt4 key购买 nike

当用户将鼠标悬停在任务栏图标上时,我正在使用WPF NotifyIcon库显示任务栏图标和工具提示。我将工具提示定义为UserControl:

<tb:TaskbarIcon  x:Class="MyAwesomeApp.TrayIconUserControl">
<tb:TaskbarIcon.TrayToolTip>
<Grid>
<TextBlock Text="{Binding TextFromViewModel}" />
</Grid>
</tb:TaskbarIcon.TrayToolTip>
</tb:TaskbarIcon>

我在主ViewModel中创建它:

private TaskbarIcon TrayIcon;

public void CreateTrayIcon()
{
TrayIcon = new TrayIconUserControl();
}

但是,我想在用户将鼠标悬停在托盘图标上时(恰好在实际显示工具提示时)更新taksbar的viewmodel。如何实现呢? TrayIcon的任何事件都不会触发,例如MouseEnter,TooltipDisplayed等都不会触发,因此ViewModel仅在启动时才会读取其值。

最佳答案

应该像在XAML中调用PreviewTrayToolTipOpen事件一样简单:

<tb:TaskbarIcon  x:Class="MyAwesomeApp.TrayIconUserControl"
PreviewTrayToolTipOpen="PreviewTrayToolTipOpen">
<tb:TaskbarIcon.TrayToolTip>
<Grid>
<TextBlock Text="{Binding TextFromViewModel}" />
</Grid>
</tb:TaskbarIcon.TrayToolTip>
</tb:TaskbarIcon>

或在您的代码背后:
TrayIcon = new TrayIconUserControl();
TrayIcon.PreviewTrayToolTipOpen += PreviewTrayToolTipOpen;

这两个方法具有相同的处理程序签名:
    private void PreviewTrayToolTipOpen(object sender, RoutedEventArgs routedEventArgs)
{
throw new NotImplementedException();
}

希望这可以帮助

关于c# - WPF NotifyIcon不触发MouseEnter事件(显示工具提示时如何更新NotifyIcon View 模型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29616823/

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