2010-12-05 27 views
1

複数のボタンがあり、それぞれに32x32ピクセルのPNG画像があります。奇妙なことは、両方のボタンが異なるサイズを表示していることです(はい、私はアイコンが実際に32x32であることを確認しました!)。秒ボタンは48x48ピクセルのサイズになります。一番面白いのは、Stretch="None"属性を省略すると、アイコンがほぼ全画面を満たすように拡大されるということです。WPF:ボタンで奇妙な画像が伸びる

なぜこれが起こっているのか私は説明できません!

<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> 

答えて

5

2枚の画像は、おそらく異なるのDPIを持っています。

+0

このスケーリングを避け、元の解像度で画像を表示するにはどうすればよいですか? – codymanix

+0

@Cody: 'Width'と' Height'を明示的に設定できます。 – SLaks

+0

私は今、画像のDPIを96に変更したので、Windowsのデフォルトに準拠しました。今、動作します、ありがとう) – codymanix

2

SLaksに答えるフォローアップするには:あなたが持っている場合は、この

<Button Name="toggleDetails" ToolTip="Details for Item" Click="toggleDetails_Click"> 
    <Image Source="Icons/maximize.png" 
      Stretch="None" 
      Width="{Binding RelativeSource={RelativeSource Self}, Path=Source.PixelWidth}" 
      Height="{Binding RelativeSource={RelativeSource Self}, Path=Source.PixelHeight}"/> 
</Button> 
+0

boahは、 – codymanix

4

のようなソースのPixelWidthとPixelHeightに、幅と高さをバインドすることができDPIに関係なく、画像のピクセル寸法を使用するにはImageの場合はStretch="None"と設定してください。それでもDPIの不一致のために、より大きく/小さく/ぼやけて見えます。

たとえば、PNGファイルにはDPIが格納されます。 Windowsには特定のDPIがあります。システムのDPIを確認し、PNG DPIを確認してください。

Image -> Image Sizeに行くとドット/インチのボックスが表示されます。 DPIの変更にも使用できます。 Resample Imageチェックボックスを無効にして、DPIのみを変更するようにしてください。変更を保存するにはSave for Webダイアログを使用する必要があります。これは、通常のSave Asがその情報を保存しないためです。私の場合は

enter image description here

、私は24×24のサイズのPNGファイルを持っていた、とDPI 72.009と私のシステムでは、デフォルトDPIです。画像が大きくなり、ぼやけて見えました.PNG DPIをPhotoshopで72.009から72に調整し、Save for Webを使用した後は問題ありません。

関連する問題