2011-11-15 4 views
1

私のWPFメニューでは、矢印キーを使用してメニューをナビゲートする際に目立たないように見えるセパレータ(System.Windows.Controls.Separator)アイテムがあります。私は矢印のナビゲーションパスがこれらの区切り文字をスキップするようにしたいと思います。私はIsEnabledIsTabStopを設定しようとしましたが、falseに設定されていますが、どちらも効果がないようです。矢印キーがWPFメニューの区切り項目をスキップするようにしますか?

XAMLでは、区切り記号をスキップするように指定する方法を教えてください。

UPDATE:ここでは私の区切りのための現在のスタイルXAMLです:

<Style TargetType="{x:Type Separator}"> 
     <Setter Property="Focusable" Value="false" /> 
     <Setter Property="SnapsToDevicePixels" Value="true" /> 
     <Setter Property="IsTabStop" Value="false" /> 
     <Setter Property="IsHitTestVisible" Value="false" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Separator}"> 
        <Border BorderThickness="1" 
          Margin="10,5,10,5"> 
         <Border.BorderBrush> 

          <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1" > 
           <GradientStop Color="{DynamicResource Nui10Color}" Offset="0"/> 
           <GradientStop Color="{DynamicResource Nui50Color}" Offset="1"/> 
          </LinearGradientBrush> 

         </Border.BorderBrush> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

答えて

2

私はそれを理解しました。テンプレートではなく、MenuItem自体にFocusableを設定する必要がありました。

<!-- style for menu item separators --> 
      <Style TargetType="{x:Type MenuItem}" 
      BasedOn="{StaticResource {x:Type MenuItem}}" 
      x:Key="MenuItemStyleSeparator"> 
          <!-- the following line is what I needed --> 
       <Setter Property="Focusable" Value="False" /> 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate TargetType="{x:Type MenuItem}"> 
          <Separator IsEnabled="false" /> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
      </Style> 
1

はそれらにIsHitTestVisible="False"を設定してみてください。すべてのヒットテストから無効にする必要があります

+0

残念ながら、それはうまくいきませんでした。 –

関連する問題