1

ウィンドウの背景を描画するために使用したい次のImageBrush宣言があります。

     <ImageBrush x:Key="Fondo" 
      ImageSource="Fondo.png"        
      Viewport="0,0,0.1,0.1" TileMode="Tile"/>

WindowのBackgroundプロパティへのStaticResourceバインディングを使用して設定すると、ブラシは正しくレンダリングされますが、画像は拡大縮小されます。これは私が望まない動作です。アプリケーションで画像をネイティブ解像度で使用し、必要に応じて繰り返して、スケーリングを行わずにウィンドウの背景を塗りつぶしてください。何が間違っているのかわかりません。

私が使用している画像は、幅200ピクセル、高さ200ピクセルです。私が持っているビューポート値は推測されましたが、それを行う前は機能していませんでした。

助けてくれてありがとう

編集:質問の矛盾を修正しました

4

2 に答える 2

5

問題が見つかりました。画像は72dpiの解像度用に設計されたpngでした。したがって、WPFは標準の96dpi解像度に一致するようにスケーリングしていました。問題はコードにありませんでした。

于 2009-09-24T00:15:02.387 に答える
2

ソース画像の解像度がわかっている場合は、ViewBoxとViewPortの値をピクセルとして設定できます。ViewBoxUnitsとViewPortUnitsをabsoluteに設定すると、必要な効果を実現できるはずです。

<ImageBrush ViewBox="0,0,200,200" 
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />
于 2009-09-20T06:54:59.457 に答える