2012-10-05 187 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

相关问题