2011-12-01 102 views
2

我在我的WPF应用程序中使用Microsoft.Windows.Controls.Ribbon,并且它将RibbonCommand图像拉伸得比它应该的大。的图像被插入如下:RibbonControl正在拉伸图像

<r:RibbonApplicationMenu.Command> 
    <r:RibbonCommand LargeImageSource="/Resources/Images/FSRibbon.png" /> 
</r:RibbonApplicationMenu.Command> 

这里是FSRibbon.png:enter image description here 它是一个32x28 32位PNG。我也尝试过32 x 32,以及一个48 x 48的空填充。就像它的被拉伸到48×48帆布

enter image description here

正如你所看到的,它变得炸掉:无论我做什么,色带控制显示这一点。但是,如果我提供48x48的图像,它会发挥同样的作用。 RibbonCommand不提供任何方式来控制图像的延伸,所以没有什么像<Image/>对象的Stretch="None"属性给我设置。到底是怎么回事?


尝试

我已经试过这样: enter image description here

+0

你试过SmallImageSource,只是不给它一个LargeImageSource? – Paparazzi

+0

SmallImageSource是一些不同的属性。如果您使用功能区按钮,则设置SmallImageSource而不是LargeImageSource将图像留空。 – Alain

回答

4

This问题放倒我离开的事实,WPF是不是适应不同的图像分辨率有这么神奇(DPI /像素每英寸等)。前面提到的问题说,Windows标准是96 DPI,我猜是像素/英寸的同义词。我上面上传的图像恰好是72像素/英寸。

我试图将它转换为96使用GIMP(开源图像编辑器)中的'缩放图像',神奇地,它开始正确处理。

enter image description here- >enter image description here

仿佛我们卑微的程序员都应该知道这个垃圾:P