【问题标题】:VB WPF How to handle a click event on a context menuItem in an object in a resourceDictionaryVB WPF如何处理resourceDictionary中对象的上下文菜单项上的单击事件
【发布时间】:2016-04-16 20:29:09
【问题描述】:

我刚开始使用 WPF,请耐心等待。

我在 Visual Basic 2015 中使用现成的 NotifyIcon 替代 WPF。 (http://www.hardcodet.net/wpf-notifyicon)

我已经阅读了文档(虽然它们在 c# 中......)并最初在 resourceDictionary 中进行了配置。

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

我会很感激一些友好的指导。

非常感谢大家!

【问题讨论】:

    标签: wpf vb.net c#-to-vb.net


    【解决方案1】:

    It is possible 用于 ResourceDictionary 后面有代码。但是,在这种情况下,我怀疑它对您是否有用,因为我很确定您需要从窗口中获取一些东西。

    如果这不是必需的,您可以使用资源字典后面的代码。

    【讨论】:

    • 有什么选择?以编程方式在启动事件中配置 tb 对象?
    • 你可以把它放在 MainWindow 本身,而不是 ResourceDictionary。资源字典的目的是重用它。如果你可以重用它,你可以为资源字典做一个代码。否则你可以把它放在窗口本身。
    • 感谢您的评论。我正在使用启动事件来启动和初始化我的应用程序,并且没有窗口。最好使用窗口进行初始化(以便我可以配置工具栏对象)而不使用启动事件?
    • 我将它添加到主窗口,但现在 TaskBarIcon 在那里。我无法从另一个 wpf 窗口引用它。哼! Windows 窗体要容易得多。 :-)
    • 不。 Winforms 并不容易。您可以像使用 Forms 一样简单地将您的窗口的引用传递给另一个窗口。
    猜你喜欢
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    相关资源
    最近更新 更多