Контекстные меню и NavigateTo в Blend / SketchFlow

Надеясь, что это будет просто, в Sketchflow я пытаюсь подключить контекстное меню для перехода на другую страницу.

Я создал контекстное меню, добавил пункт меню, щелкнул правой кнопкой мыши элемент mneu на панели «Объекты и временная шкала» и выбрал navigateto. Когда я запускаю его, меню появляется, но когда я нажимаю на пункт меню, он ничего не делает.

Раньше у меня работал NavigateTo при щелчке левой кнопкой мыши по другому объекту, поэтому все экраны / соединения на месте.

Это xaml, который был сгенерирован:

    <ContextMenu>
 <MenuItem Header="Edit">
  <i:Interaction.Triggers>
   <i:EventTrigger EventName="MouseDown">
    <pb:NavigateToScreenAction TargetScreen="SomeScreen.Screen_3_2"/>
   </i:EventTrigger>
  </i:Interaction.Triggers>
 </MenuItem>
</ContextMenu>

person Spruce    schedule 14.10.2009    source источник


Ответы (2)


Этот xaml работает для сценария, который, как я думаю, вы пытаетесь достичь:

<Button Content="Button">
            <Button.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="Next">
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="Click">
                                <pb:NavigateToScreenAction TargetScreen="WpfPrototype3Screens.Screen_2"/>
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                    </MenuItem>
                </ContextMenu>
            </Button.ContextMenu>
        </Button>
person Chuck Hays    schedule 20.10.2009
comment
вздох Я не знаю, почему Expression Engine устанавливает для EventName значение LeftMouseClickDown, но это устранило мою проблему. Я предполагаю, что движок по умолчанию работает в наиболее частном случае, а не в самом общем. Спасибо. - person JohnMetta; 18.12.2010

Если путь для TargetScreen правильный, просто измените EventName на «Click», и он будет работать. «Click» обрабатывает событие «MouseDown».

person Adam Kinney    schedule 19.10.2009