2010-06-17 2 views
2

PageDown을 키 제스처로 설정 한 사용자 정의 명령을 설정했지만 해당 명령에 바인딩 된 MenuItem의 경우 제스처가 "다음"으로 표시됩니다. 문제는 PageUp, Home 및 End를 사용하여 관련 작업을 수행하는 명령이 있고 모두 해당 MenuItem에 대해 예상대로 표시된다는 것입니다. 거기에 일관성을 위해 "다음"대신 MenuItem 쇼 "PageDown"을 만들 수있는 방법이 있습니까?WPF 키 제스처 PageDown이 메뉴 항목의 다음으로 표시됩니다.

다음은 명령을 정의하는 xaml입니다. 나는 메뉴에서 사용할 경우 여기

<Window.Resources> 
    <RoutedUICommand x:Key="FirstPageCommand" 
        Text="FirstPage"> 
     <RoutedUICommand.InputGestures> 
      <KeyGesture>Home</KeyGesture> 
     </RoutedUICommand.InputGestures> 
    </RoutedUICommand> 
    <RoutedUICommand x:Key="LastPageCommand" 
        Text="LastPage"> 
     <RoutedUICommand.InputGestures> 
      <KeyGesture>End</KeyGesture> 
     </RoutedUICommand.InputGestures> 
    </RoutedUICommand> 
    <RoutedUICommand x:Key="PreviousPageCommand" 
        Text="PreviousPage"> 
     <RoutedUICommand.InputGestures> 
      <KeyGesture>PageUp</KeyGesture> 
     </RoutedUICommand.InputGestures> 
    </RoutedUICommand> 
    <RoutedUICommand x:Key="NextPageCommand" 
        Text="NextPage"> 
     <RoutedUICommand.InputGestures> 
      <KeyGesture>PageDown</KeyGesture> 
     </RoutedUICommand.InputGestures> 
    </RoutedUICommand> 
</Window.Resources> 

그리고는 내 메뉴는이

  • 보기
    • 첫 페이지 홈
    • 마지막 페이지 페이지 업처럼 보이는

      <MenuItem Header="_View"> 
          <MenuItem Header="_First Page" 
             Command="{StaticResource FirstPageCommand}"> 
           <MenuItem.Icon> 
            <Image Source="Images\Backward_01.png" 
             Stretch="Uniform"/> 
           </MenuItem.Icon> 
          </MenuItem> 
          <MenuItem Header="_Previous Page" 
             Command="{StaticResource PreviousPageCommand}"> 
           <MenuItem.Icon> 
            <Image Source="Images\Backward.png" 
             Stretch="Uniform"/> 
           </MenuItem.Icon> 
          </MenuItem> 
          <MenuItem Header="_Next Page" 
             Command="{StaticResource NextPageCommand}"> 
           <MenuItem.Icon> 
            <Image Source="Images\Forward.png" 
             Stretch="Uniform"/> 
           </MenuItem.Icon> 
          </MenuItem> 
          <MenuItem Header="_Last Page" 
             Command="{StaticResource LastPageCommand}"> 
           <MenuItem.Icon> 
            <Image Source="Images\Forward_01.png" 
             Stretch="Uniform"/> 
           </MenuItem.Icon> 
          </MenuItem> 
      </MenuItem> 
      

    • 이 같은 코드에 명령을 정의 할 경우 10
    • 다음 페이지 다음
    • 마지막 페이지 끝

답변

3

는 분명히에만 가능합니다. 여기

public class MyCommands 
{ 
    public static RoutedUICommand NextPage { get; private set; } 
    public static RoutedUICommand PreviousPage { get; private set; } 

    static OCRopingCommands() 
    { 
     NextPage = new RoutedUICommand("NextPage", "NextPage", typeof(MyCommands)); 
     NextPage.InputGestures.Add(
      new KeyGesture(Key.PageDown, ModifierKeys.None, "PageDn")); 
     PreviousPage = new RoutedUICommand("PreviousPage", "PreviousPage", typeof(MyCommands)); 
     PreviousPage.InputGestures.Add(
      new KeyGesture(Key.PageUp, ModifierKeys.None, "PageUp")); 
    } 
} 

그리고는 KeyGesture 당신이 XAML에서 표시 이름을 설정하는 것을 허용하지 않습니다 왜

<MenuItem Header="_Previous Page" 
      Command="local:MyCommands.PreviousPage"> 
    <MenuItem.Icon> 
     <Image Source="Images\Backward.png" 
      Stretch="Uniform"/> 
    </MenuItem.Icon> 
</MenuItem> 
<MenuItem Header="_Next Page" 
      Command="local:MyCommands.NextPage"> 
    <MenuItem.Icon> 
     <Image Source="Images\Forward.png" 
      Stretch="Uniform"/> 
    </MenuItem.Icon> 
</MenuItem> 

그들을 나를 넘어 철사 줄 방법입니다.

관련 문제