我在WinForms应用程序内部托管了一个WPF UserControl
。此UserControl
具有一个ContentControl
的{{1}}。 ContextMenu
有几个ContextMenu
,它们的MenuItem
属性都设置为Icon
。
无论出于何种原因,图标在不同的系统上都会变得很大。我已经在Windows 10和Windows 7机器上对其进行了测试,它们很好,但是在其他win10 / win7机器上它们却很大。
实际的.ico
文件范围从32x32位到256x256。
这是.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
,但我想知道是什么原因造成的。
答案 0 :(得分:1)
据我了解,图标大小的用户设置将影响此特定情况。
他们选择大图标,然后Windows将更喜欢ico的大版本。
我不确定,因为我从不冒险使用Image的默认大小。
无论如何,它选择的是256x256,而您没有给它指定尺寸,因此它决定图像为256x256。
IMO。
在wpf应用程序中为此内容使用ico或任何位图文件是一个坏主意。
最好使用矢量图形。
简单图标的路径。
使用菜单,这还意味着需要重新模板化或替换标题。
但是您随后可以在整个应用程序中获得一致的可缩放图标。
在资源字典中使用非常轻巧的几何图形。