双击Caliburn Micro的WPFNotifyIcon

时间:2013-10-18 10:33:41

标签: wpf caliburn.micro

我正在尝试一起使用WPF NotifyIconCaliburn Micro。我的最终目标是双击系统托盘中的图标,将窗口从最小化状态恢复。请随意告诉我,我试图解决它的方式是完全错误的。

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

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

xaml -

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

VM -

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

public bool CanRestore
{
    get { return true; }
}

2 个答案:

答案 0 :(得分:5)

尝试以下方法:

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

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

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

答案 1 :(得分:1)

如何创建附加活动?

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

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

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

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