2013-07-18 49 views
3

我希望找到一種方法來刪除popup(子)'MenuItem中的左側空間,並且只讓它們佔用所需的空間,而不必爲此創建一個全新的模板控制。在這種情況下,我可以使用任何類型的依賴屬性還是具有這種屬性?我試着創建新的模板,並試圖完成它的繁瑣,而且看起來像是過度殺傷。Size MenuItem以適應XAML中的內容

如果有人有任何建議(特別是如何擺脫'MenuItem'左邊的那個討厭的盒子而沒有製作一個新的模板),請讓我知道。任何幫助,將不勝感激。

+0

那麼添加它,我發現自己在一個艱難的局面。這兩個建議的答案確實可以完成工作,但我只能接受一個......這對我來說很困難,因爲Tim的答案仍然需要使用修改後的模板,但從長遠來看可以提供更大的靈活性,而Nitesh的答案實際上是針對這個問題與問題完全相同,但以一種不太優雅和可塑的方式。 –

+0

這個對我來說真的很難,但是因爲Nitesh的回答完全遵循了這個問題的標準(沒有定製模板),我會接受他的回答。蒂姆,你的回答也非常有幫助,我很樂意提高它的評價。這是我無法接受的一種恥辱。不過,我要感謝你們兩位的幫助。 –

+0

沒什麼大不了的。只是希望你能從這兩個答案中得到一些你可以使用的東西。 – Tim

回答

1

有一個竅門。看它是否解決你的目的 設置ItemsPanel的風格和你的資源

<Style TargetType="{x:Type MenuItem}"> 
    <Setter Property="ItemsPanel"> 
     <Setter.Value> 
      <ItemsPanelTemplate> 
       <StackPanel Margin="-20,0,0,0" Background="Gray"></StackPanel> 
      </ItemsPanelTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 


<Menu> 
    <MenuItem Header="MI1">     
     <MenuItem Header="MI1"></MenuItem> 
     <MenuItem Header="MI2"></MenuItem> 
    </MenuItem> 
    <MenuItem Header="MI2"></MenuItem> 
</Menu> 
1

不要以爲你可以做到這一點,而無需重新設想它。 Here's another question that asked for the icon area to be removed,但也要求更多。他們必須重新對其進行模板化,答案包括他們使用的模板,這樣可以緩解您的過程。

這是另一個answer from MSDN forums,我想只是刪除圖標區域。

不理想,但沒有「ShowIconArea」屬性或任何東西。

+0

感謝您的答覆。這是一個恥辱,沒有一個更有效的方式來處理這個問題。 –