2017-05-10 120 views
1

我試圖得到以下行爲: 當我右擊我的按鈕它應該打開一個帶按鈕的窗口。當我右擊按鈕1.2,我想用另一種按鈕打開另一個窗口。ContextMenu裏面的WPF中的ContextMenu

enter image description here

注意按鈕2.X的風格是不是在按鈕1.x的不同,

我試圖讓使用ContextMenus這項工作,但當我右擊按鈕1.x沒有任何反應。是不可能使用嵌套ContextMenus?還有其他的可能嗎?

下面是一個例子:

<Button Content="Hello"> 
    <Button.ContextMenu> 
     <ContextMenu> 
      <MenuItem/> 
      <ContextMenu.ItemContainerStyle> 
       <Style> 
        <Setter Property="MenuItem.Template"> 
         <Setter.Value> 
          <ControlTemplate> 
           <Button Content="Level 1"> 
            <Button.ContextMenu> 
             <ContextMenu> 
              <MenuItem /> 
              <ContextMenu.ItemContainerStyle> 
               <Style> 
                <Setter Property="MenuItem.Template"> 
                 <Setter.Value> 
                  <ControlTemplate> 
                   <Button Content="Level 2" /> 
                  </ControlTemplate> 
                 </Setter.Value> 
                </Setter> 
               </Style> 
              </ContextMenu.ItemContainerStyle> 
             </ContextMenu> 
            </Button.ContextMenu> 
           </Button> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </ContextMenu.ItemContainerStyle> 
     </ContextMenu> 
    </Button.ContextMenu> 
</Button> 
+1

爲了能夠你需要使用彈出窗口顯示在右側點擊。將彈出窗口綁定到哪裏,然後打開下一個彈出窗口。保持彈出窗口打開,直至失去焦點或點擊外部由您決定。 –

回答

0

更容易使用嵌套的MenuItems

<Button Content="Hello"> 
     <Button.ContextMenu> 
      <ContextMenu> 
       <MenuItem Header="Level1"> 
        <MenuItem Header="Level2"> 
         <MenuItem Header="Level3"></MenuItem> 
        </MenuItem> 
       </MenuItem> 
      </ContextMenu> 
     </Button.ContextMenu> 
    </Button> 
+0

這對我來說不起作用,因爲不同層次的款式差別很大(即使圖片看起來很相似)。我可以在問題中表達得更好,對不起。 Popup解決了我的問題 – sighol