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)
如果您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。