WPF:按钮中的奇怪图像拉伸

cod*_*nix 2 .net wpf image button stretch

我有多个按钮,每个按钮都有一个32x32像素的PNG图像.奇怪的是,两个按钮显示不同的大小(是的,我三重检查图标真的是32x32!).秒按钮看起来像48x48像素大小.最有趣的是,如果省略该Stretch="None"属性,图标将按比例放大以填充整个屏幕.

我无法解释自己为什么会这样!

    <ToolBar Name="toolBar1" DockPanel.Dock="Top">
        <Button Name="importButton" ToolTip="Import" Click="importButton_Click">
            <Image Source="Icons/Import.png" Stretch="None" />
        </Button>
        <Button Name="toggleDetails" ToolTip="Details for Item" Click="toggleDetails_Click">
            <Image Source="Icons/maximize.png" Stretch="None" />
        </Button>           
    </ToolBar>

    <StackPanel Name="stackPanel1" DockPanel.Dock="Top" Orientation="Horizontal" Margin="0,5,0,5">
        <Label  Name="label2" Content="Find"></Label>
        <TextBox  Name="tags" Width="400" KeyDown="tags_KeyDown" />
        <Button ToolTip="Find" Name="findItemsButton" Click="findItemsButton_Click">
            <Image Source="Icons/xmag.png" Stretch="None" />
        </Button>
        <CheckBox Content="Show Closed" Name="showClosedItemsCheckBox" VerticalAlignment="Center" Margin="10,0,0,0" Click="showClosedItemsCheckBox_Click" />
    </StackPanel>
    <TabControl  Name="tabControl" TabStripPlacement="Top">

    </TabControl>

</DockPanel>
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 6

这两个图像可能具有不同的DPI.


Tow*_*wer 5

如果您Stretch="None"为设置了Image,但它仍然看起来较大/较小/模糊,则可能是因为DPI不匹配。

例如,PNG文件存储DPI。Windows具有特定的DPI。检查系统DPI,然后检查PNG DPI。

在Photoshop中,您可以转到Image -> Image Size,它将显示点/英寸框。您也可以使用它来更改DPI。确保禁用Resample Image复选框,以便仅更改DPI。您需要使用Save for Web对话框来保存该更改,因为普通用户Save As不会保存该信息。

在此处输入图片说明

在我的情况下,我有一个PNG文件,大小为24x24,DPI为72.009,并且系统为默认DPI。图片看起来更大且更模糊,现在在用Photoshop将PNG DPI从72.009调整为72后再使用可以了Save for Web