J'ai créé l'application WPF avec NotifyIcon
pour travailler dans un bac.Comment remplir ContextMenuStrip en XAML?
public partial class MainWindow : Window
{
public NotifyIcon NotifyIcon { get; } = new NotifyIcon
{
Icon = Properties.Resources.status_on_ico,
Visible = true
};
public MainWindow()
{
InitializeComponent();
NotifyIcon.ContextMenuStrip = MyContextMenuStrip;
NotifyIcon.Click += NotifyIcon_Click;
}
private void Window_Closing(object sender, CancelEventArgs e)
{
e.Cancel = true;
WindowState = WindowState.Minimized;
}
private void NotifyIcon_Click(object sender, EventArgs e)
{
Show();
}
}
XAML de la fenêtre principale n'a rien de spécial et n'est pas pertinent.
Je veux créer ContextMenuStrip
de NotifyIcon
en XAML (je sais comment faire le code derrière mais je ne le veux pas).
Voici ce que j'ai géré.
<WindowsFormsHost>
<wf:ContextMenuStrip x:Name="MyContextMenuStrip" TopLevel="False">
<wf:ContextMenuStrip.Items>
<!-- How to add items here? -->
</wf:ContextMenuStrip.Items>
</wf:ContextMenuStrip>
</WindowsFormsHost>
La question est de savoir comment ajouter des éléments à ContextMenuStrip.Items
avec Name
et Click
gestionnaires d'événements en XAML?
Avez-vous envisagé d'utiliser [bibliothèque MotifyIcon native de hardcodet pour WPF] (http://www.hardcodet.net/wpf-notifyicon/comment- page-3)? Aucune winforms interop nécessaire, sauf si vous l'utilisez pour d'autres choses. –
Oui, mais vous ne savez pas s'il est assez robuste pour l'utiliser dans l'application d'entreprise. Pour être honnête, je ne suis pas puriste WPF et certains contrôles intégrés de Windows Forms dans mes applications ne me confondez pas. –
Si la réponse à ma question est "c'est impossible", je m'en tiendrai au code derrière la solution (ce qui est trivial). 'NotifyIcon' est un petit morceau de code dans mon application. –