所以我有一个MenuItem(在ContextMenu中,如果它确实有所作为,不要认为它是)。我想使用MenuItem.Icon属性在MenuItem中显示一个图标。这是XAML代码:WPF MenuItem.Icon尺寸
<MenuItem Header="MenuItem1">
<MenuItem.Icon>
<Image Source="[pathtoimage]"/>
</MenuItem.Icon>
</MenuItem>
This works。但是如果我想用高度和宽度指定图标的大小呢?在网上搜索显示,它应该是32,有人说应该是20. 20对我最好,但我不想硬编码20.我想设置它与MenuItem相同的高度,给定的事实上,在不同的分辨率下,实际高度可能不同。所以,我尝试了以下内容:
<MenuItem x:Name="menuItem1" Header="MenuItem1">
<MenuItem.Icon>
<Image Source="[pathtoimage]"
Height="{Binding Path=ActualHeight, ElementName=menuItem1}"
Width="{Binding Path=ActualHeight, ElementName=menuItem1}"
</MenuItem.Icon>
</MenuItem>
你会认为它应该工作,但它没有。问题是为什么?如果我将宽度和高度均设置为20,则能够获得所需的外观。但是,如果系统字体大小发生变化,那么20x20将不再理想。在XAML中这样做是理想的,因为我相信在代码隐藏方面有很多方法可以处理这个问题。
图标大小可能会针对“aero2”Win8/10进行硬编码,但不适用于Win7“aero”。在开发OS!=用户操作系统时,可以以两种方式给出令人惊讶的结果。 (在W7上开发W10上的剪辑图标,或W7上的W7上的疯狂大图标都显得清脆)。 – springy76