C# 用图像填充整个菜单按钮
我正在尝试创建一个WPF菜单,它由5个简单的按钮组成,这些按钮全部由一个图像填充。我创建了以下XAML:C# 用图像填充整个菜单按钮,c#,.net,wpf,xaml,menuitem,C#,.net,Wpf,Xaml,Menuitem,我正在尝试创建一个WPF菜单,它由5个简单的按钮组成,这些按钮全部由一个图像填充。我创建了以下XAML: <Menu x:Name="menuMain" Height="40" Margin="0,0,0,0" VerticalAlignment="Top" HorizontalAlignment="Stretch"> <MenuItem x:Name="menuItemPrint" Width="40" Height="40"> <Men
<Menu x:Name="menuMain" Height="40" Margin="0,0,0,0" VerticalAlignment="Top" HorizontalAlignment="Stretch">
<MenuItem x:Name="menuItemPrint" Width="40" Height="40">
<MenuItem.Icon>
<Image Source="Resources/Images/Yes.png" Width="40" Height="40"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="menuItemClear" Width="40" Height="40">
<MenuItem.Icon>
<Image Source="Resources/Images/Yes.png" Width="40" Height="40"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="menuItemSettings" Width="40" Height="40">
<MenuItem.Icon>
<Image Source="Resources/Images/Yes.png" Width="40" Height="40"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="menuItemScanner" Width="40" Height="40">
<MenuItem.Icon>
<Image Source="Resources/Images/Yes.png" Width="40" Height="40"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="menuItemMode" Width="40" Height="40" Click="menuItemMode_Click">
<MenuItem.Icon>
<Image Source="Resources/Images/Yes.png" Width="40" Height="40"/>
</MenuItem.Icon>
</MenuItem>
</Menu>
但具体结果如下所示:
它只显示图像左上角的四分之一,而且它似乎也因为一些奇怪的原因而抵消了它?互联网上几乎所有的答案都涉及到设置图片的大小,我就是这么做的(PNG的大小正好是40x40,菜单和图片也是如此)
我尝试过改变对齐方式,将填充设置为“拉伸”并调整边距,但似乎没有任何帮助
为了记录在案,我试图实现的目标如下所示(不过最好是用一个不那么丑陋的绿色复选标记。你必须原谅我的编辑技巧)
尝试覆盖menuitem模板。这似乎适合我
<Menu Height="40">
<MenuItem Height="40" Width="40">
<MenuItem.Template>
<ControlTemplate>
<Image Source="source path here" />
</ControlTempalte>
</MenuItem.Template>
</MenuItem>
</Menu>
不要使用
图标
属性,而是使用标题
,只需设置边距
偏移量即可
<MenuItem x:Name="menuItemPrint" Width="40" Height="40">
<MenuItem.Header>
<Image Source="Resources/Images/Yes.png" Width="40" Height="40" Margin="-7"/>
</MenuItem.Header>
</MenuItem>
原始图像有多大?大于还是小于40x40?@d正如我所提到的,它正好是40x40。虽然这解决了大小和对齐问题,但这种方法的问题是它会删除正确菜单项的所有行为。例如,当我将鼠标移到上方时,我不再得到方形荧光灯,例如,这种行为为什么我首先要把它做成一个菜单项:(哦,是的。我没有想到。d moncada的解决方案似乎很好。这确实有效!我仍然很困惑为什么我的原始解决方案不起作用,但谢谢!没问题!而且,由于您为每个图像设置了许多相同的属性,您可能希望创建一种所有图像都使用的样式。它更干净,如果y如果你想要改变,你只需要在一个地方改变它