2010-11-23 3 views
0

저는 Microsoft의 새 WPF 리본 (2010 년 10 월 릴리즈)을 사용하고 있으며 RibbonApplicationSplitMenuItem으로 내 응용 프로그램 메뉴를 디자인했습니다. 사용자가 RibbonApplicationSplitMenuItem을 클릭하면 프로그램 설정 대화 상자를 열고 싶습니다. 하위 항목에는 설정 대화 상자의 다양한 탭 페이지에 대한 직접 링크가 포함되어 있으며 선택된 페이지를 선택하여 설정 대화 상자를 열려고합니다.하위 항목이있는 WPF 리본 응용 프로그램 메뉴에서 하위 항목과 부모 콜백을 실행합니다.

<ribbon:RibbonApplicationSplitMenuItem 
    Header="Settings" 
    x:Name="SettingsItem" 
    Click="settingsClicked" 
> 
    <ribbon:RibbonApplicationMenuItem 
    Header="Scanner Settings" 
    x:Name="scannerSettingsItem" 
    Click="scannerSettingsClicked" 
    /> 
    <ribbon:RibbonApplicationMenuItem 
    Header="Printer Settings" 
    x:Name="printerSettingsItem" 
    Click="printerSettingsClicked" 
    /> 
</ribbon:RibbonApplicationSplitMenuItem> 

내 문제는 사용자가 예를 클릭 할 때입니다. "스캐너 설정"하위 항목 인 경우 먼저 scannerSettingsClicked() 콜백이 실행되고 settingsClicked() 콜백이 발생하여 설정 대화 상자가 닫힌 직후 두 번째로 표시됩니다.

Visual Studio의 WPF 디자이너에서 속성 창은 부모 항목의 콜백 또는 모든 하위 항목을 제거하지 않으면 콜백 구독을 표시하지 않으므로 잘못된 작업을 수행해야합니다.

원하는 동작을 얻으려면 어떻게해야합니까?

+0

scannerSettingsClicked()와 settingsClicked() 사이의 경과 시간을 측정하여이를 "해결"했습니다. 500 밀리 초 미만이면 후속 통화라고 가정하고 아무 것도하지 않습니다. 훌륭하지는 않지만 일을 끝내게됩니다. – Cygon

답변

1

하위 항목 클릭 이벤트에서 e.Handled = true을 설정하면 이벤트가 상위 항목으로 버블 링되지 않습니다.

+0

고마워요, 제 기발한 해결책보다 훨씬 낫습니다! – Cygon

관련 문제