Ich habe gerade angefangen mit WPF, also ertragen Sie mit mir.VB WPF So behandeln Sie ein Klickereignis in einem KontextmenuItem in einem Objekt in einem ResourceDictionary
ich bereit NotifyIcon Ersatz in Visual Basic 2015 (http://www.hardcodet.net/wpf-notifyicon) für WPF gebaut bin mit
ich die Dokumentation gelesen haben (sie sind in C# obwohl ...) und sie zunächst in einem Resource konfiguriert .
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SystemTrayTest"
xmlns:tb="http://www.hardcodet.net/taskbar"
>
<!-- Globally declared notify Icon -->
<tb:TaskbarIcon x:Key="MyNotifyIcon"
IconSource="/Icons/Error.ico"
ToolTipText="Project Activity Recorder" >
<tb:TaskbarIcon.ContextMenu>
<ContextMenu
Background="LightCoral">
<MenuItem x:Name="CA" Header="Current Activity"/>
<MenuItem Header="New Activity" />
<MenuItem Header="Manage Activities" />
<Separator />
<MenuItem Header="Manage Companies" />
<MenuItem Header="Manage Projects" />
<MenuItem Header="Manage Users" />
<Separator />
<MenuItem Header="Exit" />
</ContextMenu>
</tb:TaskbarIcon.ContextMenu>
</tb:TaskbarIcon>
</ResourceDictionary>
Ich trete aus der NotifyIcon, indem sie in Application_Startup Ereignis instanziieren.
tb = CType(FindResource("MyNotifyIcon"), TaskbarIcon)
Dies zeigt das SystemTray Symbol mit einem Kontextmenü fein.
Allerdings kann ich nicht herausfinden, wie Sie abholen, wenn ein Benutzer aus dem Inhaltsmenü auswählt.
Ich habe in Windows-Formularen vorher programmiert, aber wie ich erwähnt habe WPF ist neu für mich. Ich kann aus einem WPF-Formular herausfinden, wie das geht, aber ich fange an, es zu denken, weil ich das NotifyIcon in dem ResourceDictionary eingerichtet habe.
Ich würde einige freundliche Führung schätzen.
Vielen Dank Alle!
Was ist die Alternative? Programmgesteuert das TB-Objekt in dem Startup-Ereignis konfigurieren? – user3844416
Sie könnten es in das MainWindow selbst anstelle eines ResourceDictionary einfügen. Der Zweck eines Ressourcenwörterbuchs ist die Wiederverwendung. Wenn Sie es erneut verwenden können, können Sie einen Code für das Ressourcenwörterbuch erstellen. Sonst können Sie es in das Fenster selbst legen. –
Danke für Ihren Kommentar. Ich verwende ein Startup-Ereignis, um meine Anwendung zu starten und zu initialisieren, und das hat kein Fenster. Wäre es am besten, ein Fenster zu initialisieren (damit ich das Toolbar-Objekt konfigurieren kann) und das Startup-Ereignis nicht zu verwenden? – user3844416