2011-07-28 11 views
0

私はBind to ContextMenu.IsEnabledを試しましたが、ContextMenuをクリックしても開いたままになっています。この単純化されたコードとスクリーンショットに示されている:XAMLのContextMenuですべてのMenuItemを無効にするにはどうすればよいですか?

<Window x:Class="ContextMenuSample.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" 
     Height="480" 
     Width="640"> 
    <Grid> 
     <Rectangle Width="100" 
        Height="100" 
        Fill="Black"> 
      <Rectangle.ContextMenu> 
       <ContextMenu IsEnabled="False"> 
        <MenuItem Header="Command _1" /> 
        <MenuItem Header="Command _2" /> 
        <MenuItem Header="Command _3" /> 
        <MenuItem Header="Command _4" /> 
       </ContextMenu> 
      </Rectangle.ContextMenu> 
     </Rectangle> 
    </Grid> 
</Window> 

ContextMenu stuck open

私はすべての面白い演技のContextMenuずにXAMLを通じて、簡単な方法で、すべてのコンテキストメニューのオプションを無効について行くだろうか任意の提案は?

答えて

1

再ルーティングはそれほど面白くないが、セッターの値を簡単にアクセスできるものにバインドすることができます。

さらに、あなたはより高いレベルでメニューを無効にすることができます

<Rectangle Width="100" 
      Height="100" 
      Fill="Black" 
      ContextMenuService.IsEnabled="False"> 
    <Rectangle.ContextMenu> 
     <ContextMenu> 
      <MenuItem Header="Command _1" /> 
      <MenuItem Header="Command _2" /> 
      <MenuItem Header="Command _3" /> 
      <MenuItem Header="Command _4" /> 
     </ContextMenu> 
    </Rectangle.ContextMenu> 
</Rectangle> 

そして、それがすべてで開きません。

+0

私は勝利のためにオプション1を取るつもりです。私はそれを考えていたはずです!ありがとうHB! – chrislarson

+0

あなたが大歓迎です、それは助けてうれしい:) –

関連する問題