MenuItems的图标大小在不同系统上发生变化

时间:2019-05-19 00:55:01

标签: wpf xaml icons menuitem

我在WinForms应用程序内部托管了一个WPF UserControl。此UserControl具有一个ContentControl的{​​{1}}。 ContextMenu有几个ContextMenu,它们的MenuItem属性都设置为Icon

无论出于何种原因,图标在不同的系统上都会变得很大。我已经在Windows 10和Windows 7机器上对其进行了测试,它们很好,但是在其他win10 / win7机器上它们却很大。

实际的.ico文件范围从32x32位到256x256。

以下是它们的正常外观: enter image description here

它们在某些计算机上的外观如下: enter image description here

这是.xaml:

.ico

我可以继续手动设置<UserControl x:Class="TestUC.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="737.239" Width="1455.446" <Grid> <ContentControl> <ContentControl.ContextMenu> <ContextMenu> <MenuItem Header="Pan"> <MenuItem.Icon> <Image Source="Images/panHand.ico" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="Zoom In"> <MenuItem.Icon> <Image Source="Images/zoom_In.ico" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="Zoom Out"> <MenuItem.Icon> <Image Source="Images/zoom_Out.ico" /> </MenuItem.Icon> </MenuItem> </ContextMenu> </ContentControl.ContextMenu> </ContentControl> </Grid> </UserControl> Height,但我想知道是什么原因造成的。

1 个答案:

答案 0 :(得分:1)

据我了解,图标大小的用户设置将影响此特定情况。

他们选择大图标,然后Windows将更喜欢ico的大版本。

我不确定,因为我从不冒险使用Image的默认大小。

无论如何,它选择的是256x256,而您没有给它指定尺寸,因此它决定图像为256x256。

IMO。

在wpf应用程序中为此内容使用ico或任何位图文件是一个坏主意。

最好使用矢量图形。

简单图标的路径。

使用菜单,这还意味着需要重新模板化或替换标题。

但是您随后可以在整个应用程序中获得一致的可缩放图标。

在资源字典中使用非常轻巧的几何图形。