1

像大多数人一样,我正在为我MenuItem的 s 使用图标。我希望所有这些图像都显示为 16x16 像素的图标。大多数源图像都具有这种格式,有些可能是 32x32,但它们都略微缩放(到 18x18 左右)。

我已经尝试过了,但它不会影响图标(如果这是可怕的编码,请通知我。我是 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>
4

2 回答 2

2

我想TargetType="Image"为菜单的ItemContainerStyle属性设置样式没有多大意义。根本不需要设置ItemContainerStyle. 只需使用固定每个 MenuItem 高度的样式即可。然后图标图像将自动缩放。

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

然后将该Icon属性设置为某个图像,可能为图像的 Margin 设置一个较小的值。

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

如果您确实需要将图像大小固定为某个值,只需设置 Image 的WidthandHeight属性即可。

<MenuItem Header=... >
    <MenuItem.Icon>
        <Image Width="16" Height="16" Source=... />
    </MenuItem.Icon>
</MenuItem>
于 2012-10-05T19:23:55.800 回答
0

After browsing for quite a while, I came across the keyword "nested style", which yielded https://stackoverflow.com/a/4078275/653473 after some google searches.

<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>
于 2012-10-06T07:54:43.270 回答