なぜImageBrushは、タイル張りの画像をスケーリングされましたか?

StackOverflow https://stackoverflow.com/questions/1450376

  •  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" />
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top