なぜImageBrushは、タイル張りの画像をスケーリングされましたか?
-
11-09-2019 - |
質問
私は、ウィンドウの背景を描画するために使用する以下のImageBrush宣言を持っています。
<ImageBrush x:Key="Fondo"
ImageSource="Fondo.png"
Viewport="0,0,0.1,0.1" TileMode="Tile"/>
Iブラシが正しくレンダリングされるウィンドウのBackgroundプロパティに結合StaticResourceを使用して設定したが、画像がスケーリングされている場合。これは私が、私は、アプリケーションがそのネイティブの解像度で画像を使用して、スケーリングの任意の種類せずに、ウィンドウの背景を埋めるために、必要に応じてそれを繰り返したい、したくない行動です。私は私が間違ってやっているのか分からない。
私が使用している画像は200pxの幅の広い背の高い200pxのです。私が持っているビューポートの値が推測されたが、私はそれをした前に、それは働いていませんでした。
任意の助けてくれてありがとう。
編集:問題の矛盾を修正
解決
問題を発見しました。画像は、72 dpiの解像度のために設計されたPNGました。したがって、WPFは、標準的な96 dpiの解像度と一致するようにスケーリングしました。問題は、コードではなかった。
他のヒント
あなたは元画像の解像度を知っている場合、あなたはピクセルとしてViewBoxをとビューポートの値を設定することができます。絶対にViewBoxUnitsとViewPortUnitsを設定し、あなたが望む効果を達成することができる必要があります。
<ImageBrush ViewBox="0,0,200,200"
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />
所属していません StackOverflow