2012-10-05 191 views
1

與大多數人一樣,我使用圖標作爲我的MenuItem s。我希望所有這些圖像顯示爲16x16像素圖標。大多數源圖像都具有這種格式,其中一些可能是32x32,但所有這些都略微縮放(至18x18左右)。設置MenuItem.Icon中所有圖像的寬度和高度

我已經試過這一點,但不影響圖標(如果這是可怕的編碼,請通知我,我是新來的XAML。):

<Style TargetType="MenuItem"> 
    <Setter Property="Padding" Value="6,3" /> 
    <Setter Property="Height" Value="22" /> 
    <Setter Property="ItemContainerStyle"> 
     <Setter.Value> 
      <Style TargetType="Image"> 
       <Setter Property="Height" Value="16" /> 
       <Setter Property="Width" Value="16" /> 
      </Style> 
     </Setter.Value> 
    </Setter> 
</Style> 

回答

0

瀏覽了好一陣子後,我遇到了關鍵字「嵌套式」,其中一些谷歌搜索後得到https://stackoverflow.com/a/4078275/653473

<Style TargetType="MenuItem"> 
    <Setter Property="Padding" Value="6,3" /> 
    <Setter Property="Height" Value="22" /> 
    <Style.Resources> 
     <Style TargetType="Image"> 
      <Setter Property="Height" Value="16" /> 
      <Setter Property="Width" Value="16" /> 
     </Style> 
    </Style.Resources> 
</Style> 
2

我猜設置風格與TargetType="Image"菜單的ItemContainerStyle屬性沒有多大意義。根本沒有必要設置ItemContainerStyle。只需使用修正每個MenuItem高度的樣式即可。圖標圖像將自動縮放。

<Style TargetType="MenuItem"> 
    <Setter Property="Height" Value="22" /> 
</Style> 

然後將Icon屬性設置爲某個圖像,也許圖像邊距的值很小。

<MenuItem Header=... > 
    <MenuItem.Icon> 
     <Image Margin="2" Source=... /> 
    </MenuItem.Icon> 
</MenuItem> 

如果你真的需要的圖像尺寸固定爲一定值時,只需設置圖像的WidthHeight財產。

<MenuItem Header=... > 
    <MenuItem.Icon> 
     <Image Width="16" Height="16" Source=... /> 
    </MenuItem.Icon> 
</MenuItem> 
+0

因爲他們是不同的尺寸,我會嵌入圖片到視框保留分辨率和設置您的高度/寬度的限制,以它來代替,+1 –

+0

'<圖像寬度=「16」 HEIGHT =「16 「Source = ... />'這正是我想要去的地方。我想爲每個'Image'自動設置這些寬度和高度屬性,它被用作我的所有應用程序窗口中'MenuItem.Icon'屬性的值。 – dialer

+0

@dialer好吧,然後簡單地修復MenuItem高度並讓圖像自動調整大小。 – Clemens

相關問題