2015-04-13 3 views
0

Я использую библиотеку WPF NotifyIcon для отображения значка на панели и подсказки при наведении указателя мыши на значок в трее. Я определил мой Tooltip как UserControl:WPF NotifyIcon не запускает событие MouseEnter (как обновить ViewModel NotifyIcon при отображении всплывающей подсказки)

<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(); 
} 

Однако, я хочу, чтобы обновить ViewModel в taksbar, когда пользователь будет парить на иконку в трее (только когда отображается всплывающая подсказка). Как это сделать? Ни один из событий TrayIcon, как MouseEnter, TooltipDisplayed и т. Д., Не запускается, поэтому ViewModel будет считывать его значения только при запуске.

ответ

0

Должно быть так же просто, как вызов PreviewTrayToolTipOpen событие, либо в вашем XAML:

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

Или в вас CodeBehind:

TrayIcon = new TrayIconUserControl(); 
TrayIcon.PreviewTrayToolTipOpen += PreviewTrayToolTipOpen; 

И оба метода имеют один и тот же обработчик подписи:

private void PreviewTrayToolTipOpen(object sender, RoutedEventArgs routedEventArgs) 
    { 
     throw new NotImplementedException(); 
    } 

Надеюсь, что это поможет

+0

Кажется, этот метод действительно глючит. Его не срабатывает в последней версии Hardcodet.Wpf.TaskbarNotification –

Смежные вопросы