2016-04-16 22 views
0

私はWPFを使い始めました。VB WPFコンテキストメニューのクリックイベントを処理する方法resourceDictionary内のオブジェクト内のアイテム

私はドキュメントを読んで(彼らは...しかし、C#である)と、当初のResourceDictionaryでそれを設定したのVisual Basic 2015 (http://www.hardcodet.net/wpf-notifyicon

にWPFのための代替NotifyIcon建て準備を使用しています。

<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> 

私は、Application_Startupイベントでインスタンス化することでNotifyIconを開始します。

tb = CType(FindResource("MyNotifyIcon"), TaskbarIcon) 

これは、コンテキストメニューでSystemTrayのアイコンの罰金を示しています。

しかし、ユーザーがコンテンツメニューから選択するときにどのようにピックアップするかわかりません。

私は以前にWindowsフォームでプログラミングしましたが、私はWPFが新しくなったと述べています。私はWPFフォームからこれを行う方法を躊躇することができますが、私はresourceDictionaryにNotifyIconを設定しているので、それを考えるようになっています。

フレンドリーな指導に感謝します。

ありがとうございました。

答えて

0

It is possible ResourceDictionaryにはコードがありません。しかし、この場合、私はあなたの窓から何かが必要であると確信しているので、それがあなたにとって有用であるとは思わない。

これは必須ではない場合は、リソース辞書の背後にあるコードを使用できます。

+0

代替手段はありますか?プログラムでtbオブジェクトをスタートアップイベントで設定するには? – user3844416

+0

ResourceDictionaryではなく、MainWindow自体に配置することができます。リソース辞書の目的は、それを再利用することです。再利用できる場合は、リソース辞書のコードを作成することができます。そうでなければ、それをウィンドウ自体に入れることができます。 –

+0

ご意見ありがとうございます。スタートアップイベントを使用してアプリケーションを起動して初期化していますが、ウィンドウはありません。私は、(私はツールバーオブジェクトを設定することができます)初期化するために、ウィンドウを使用し、スタートアップイベントを使用しないことをお勧めしますか? – user3844416

関連する問題