Почему мой ImageBrush масштабирует мозаичное изображение? - PullRequest
1 голос
/ 20 сентября 2009

У меня есть следующее объявление ImageBrush, которое я хочу использовать для рисования фона окна.

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

Если я установил его, используя привязку StaticResource к свойству Background окна, кисть отображается правильно, но изображение масштабируется. Это поведение, которое я не хочу, я хочу, чтобы приложение использовало изображение с его собственным разрешением и повторяло его по мере необходимости, чтобы заполнить фон окна, без какого-либо масштабирования. Я не знаю, что я делаю не так.

Используемое изображение имеет ширину 200 пикселей и высоту 200 пикселей. Значения окна просмотра, которые у меня есть, были угаданы, но до того, как я это сделал, это не сработало.

Спасибо за любую помощь

РЕДАКТИРОВАТЬ : исправлено противоречие в вопросе

Ответы [ 2 ]

5 голосов
/ 24 сентября 2009

Нашел проблему. Изображение было PNG, который был разработан для разрешения 72 точек на дюйм. Поэтому WPF масштабировал его в соответствии со стандартным разрешением 96 точек на дюйм. Проблема была не с кодом.

2 голосов
/ 20 сентября 2009

Если вам известно разрешение исходного изображения, вы можете установить значения ViewBox и ViewPort в пикселях. Установите абсолютные значения ViewBoxUnits и ViewPortUnits, и вы сможете достичь желаемого эффекта.

<ImageBrush ViewBox="0,0,200,200" 
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />
...