WPFでの画像の表示に問題があります。
ここに私のコードがあります:
<Button HorizontalAlignment="Left" Grid.Column="1" Grid.Row="5" Margin="0,5">
<Button.Content>
<StackPanel Orientation="Horizontal" Margin="10,0">
<Image Source="/images/user_add.png" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" Width="24" Height="24" />
<TextBlock Text="添加" />
</StackPanel>
</Button.Content>
</Button>
元のサイズが32 * 32のイメージがありますが、上記のコードを実行すると、イメージは元のサイズを超えてすべてのスペースを埋めるように拡大されます。また、「ストレッチ」プロパティを「なし」に設定しましたが、機能しないようです。
だから、この問題をどのように修正できますか?ありがとうございました!
ここ も同様の質問です。一般的にStretch="None"
で十分です。
また、DPIがメタデータに画像セットを持っていることも非常に重要です。画像のDPIがモニターのDPI(通常は96)、 WPFはDPIに依存しないように自動的に画像のサイズを変更します 。
<Image Source="Images/Background.png" UseLayoutRounding="True" SnapsToDevicePixels="True" Width="600" Height="800" Stretch="Fill" />
これは私にとってはうまくいきます。600x800 pixels
および96dpi
。
@ rishad2m8サイズが不明な場合は、 https://msdn.Microsoft.com/en-us/library/system.drawing.image.size(v = vs。 110).aspx 推測します。
幅や高さを指定しないでください。代わりに次のように使用してください。
<Image Source="/images/user_add.png" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" />
Payaの答えに追加:WPF
がモニターの解像度に適応しようとする試みを補正するには、Width
とHeight
をファイルの元のサイズに設定し、Stretch="Fill"
。これは私のために働いた。
画像を元のサイズで表示したいが、画像サイズがわからない場合、UIElementの背景として画像を設定するのが最善の方法だと思います。このような:
<Button>
<Button.Background>
<ImageBrush ImageSource="/images/user_add.png" Stretch="None"/>
</Button.Background>
</Button>