Wpf 设置MenuItem.图标中所有图像的宽度和高度

Wpf 设置MenuItem.图标中所有图像的宽度和高度,wpf,xaml,Wpf,Xaml,和大多数人一样,我在菜单项中使用图标。我希望所有这些图像都显示为16x16像素的图标。大多数源图像都有这种格式,有些可能是32x32,但所有图像都有轻微的缩放(到18x18左右) 我已经试过了,但它不会影响图标(如果这是糟糕的编码,请通知我。我是xaml新手。): 我想为菜单的ItemContainerStyle属性设置带有TargetType=“Image”的样式没有多大意义。根本不需要设置ItemContainerStyle。只需使用固定每个菜单项高度的样式即可。图标图像将自动缩放 <

和大多数人一样,我在菜单项中使用图标。我希望所有这些图像都显示为16x16像素的图标。大多数源图像都有这种格式,有些可能是32x32,但所有图像都有轻微的缩放(到18x18左右)

我已经试过了,但它不会影响图标(如果这是糟糕的编码,请通知我。我是xaml新手。):


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

<Style TargetType="MenuItem">
    <Setter Property="Height" Value="22" />
</Style>
如果确实需要将图像大小固定为某个值,只需设置图像的
Width
Height
属性即可

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

在浏览了很长一段时间后,我发现了“嵌套样式”这个关键词,它是在谷歌搜索后产生的

<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>


因为它们是不同的尺寸,我会将图像嵌入一个视图框以保持分辨率,并为其设置高度/宽度限制,+1
这正是我想要的。我希望为每个
图像自动设置这些宽度和高度属性,这些属性在我的应用程序的所有窗口中用作
菜单项图标属性的值。@dialer确定,然后只需固定菜单项高度并自动调整图像大小即可。
<MenuItem Header=... >
    <MenuItem.Icon>
        <Image Width="16" Height="16" Source=... />
    </MenuItem.Icon>
</MenuItem>
<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>