2

我正在尝试同时使用WPF NotifyIconCaliburn Micro。我的最终目标是双击系统托盘中的图标以从最小化状态恢复窗口。随意告诉我我尝试的方式是否完全错误。

我可以看到有一个DoubleClickCommandTaskbarIcon我没有看到任何 DoubleClick 事件,如果它可用,我实际上很乐意使用它)。通常,在使用 Caliburn Micro 时使用命令时,我会简单地创建一个Restore()方法和一个CanRestore属性,该方法和属性将由名为 Restore 的按钮自动调用。我将如何进行连接,以便Restore()在双击系统托盘中的图标时调用它?

编辑 - 根据 gleng 的建议,我现在添加了一个附加事件,但双击系统托盘中的图标似乎仍然无济于事。代码如下。

xml -

<tb:TaskbarIcon cal:Message.Attach="[Event DoubleClick] = [Action Restore]" />

虚拟机 -

public void Restore()
{
    MessageBox.Show("moo"); // breakpoint on this line is never hit
}

public bool CanRestore
{
    get { return true; }
}
4

2 回答 2

5

尝试以下操作:

<TaskbarIcon cal:Message.Attach="[Event TrayMouseDoubleClick] = [Action DoubleClickFunc]"/>

请注意,事件名称是TrayMouseDoubleClick我通过查看控件的源代码找到的,特别是名为TaskBarIcon.Declarations.cs.

该文件包含为类定义的所有依赖属性定义和路由事件TaskBarIcon

于 2013-10-18T12:21:06.580 回答
1

您如何创建附加事件?

<TaskbarIcon cal:Message.Attach="[Event DoubleClick] = [Action DoubleClickFunc]"/>

然后在您的视图模型中,您将拥有:

public void DoubleClickFunc()
{
   // Your custom logic here
}

我过去做过这个,效果很好。

于 2013-10-18T11:57:56.860 回答