2013-10-18 5 views
2

WPF NotifyIconCaliburn Micro을 함께 사용하려고합니다. 내 최종 목표는 최소화 된 상태에서 창을 복원하기 위해 시스템 트레이의 아이콘을 두 번 클릭한다는 것입니다. 나가 그것에 대략가는 것을 시도하는 방법이 완전히 틀린 지 저에게 말하는 것을 자유롭게 느끼십시오.Caliburn Micro로 WPFNotifyIcon을 더블 클릭하십시오.

TaskbarIconDoubleClickCommand이 있다는 것을 알 수 있습니다 (사용 가능한 경우 실제로 사용하면되는 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; } 
} 

답변

5

는 다음과 같은 시도 : 이벤트 이름이 TrayMouseDoubleClick입니다

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

공지 것을 나는, 컨트롤의 소스 코드를보고 TaskBarIcon.Declarations.cs 이름을 구체적으로 파일을 발견한다.

이 파일에는 TaskBarIcon 클래스에 대해 정의 된 모든 종속성 속성 정의와 라우팅 된 이벤트가 들어 있습니다.

+0

완벽한, 감사합니다! –

+0

@PaulMcLean 도와 주셔서 감사합니다. –

+1

새로운 것을 배우기위한 +1! – gleng

1

어떻게하면 연결된 이벤트를 만들에 대해?

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

그런 다음 뷰 모델에서 당신은 할 수 있습니다 : 나는 과거에 이런 짓을했는데 그것은 아주 잘 작동

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

.

+0

이것은 원래 시도한 것 중 하나 였지만 어쩌면 내가 잘못하고있는 것일 수 있습니까? 나는 위의 질문을 내가 시도한 코드로 편집했다. –

관련 문제