Почему мой ImageBrush масштабирует мозаичное изображение?
-
11-09-2019 - |
Вопрос
У меня есть следующее объявление ImageBrush, которое я хочу использовать для рисования фона окна.
<ImageBrush x:Key="Fondo"
ImageSource="Fondo.png"
Viewport="0,0,0.1,0.1" TileMode="Tile"/>
Если я устанавливаю его с помощью привязки StaticResource к свойству Background окна, кисть отображается правильно, но изображение масштабируется.Это поведение, которое мне не нужно, я хочу, чтобы приложение использовало изображение в его собственном разрешении и повторяло его по мере необходимости, чтобы заполнить фон окна, без какого-либо масштабирования.Я не знаю, что я делаю не так.
Изображение, которое я использую, имеет ширину 200 пикселей и высоту 200 пикселей.Значения области просмотра, которые у меня есть, были угаданы, но до того, как я это сделал, они не работали.
Спасибо за любую помощь
РЕДАКТИРОВАТЬ:Исправлено противоречие в вопросе
Решение
Нашел проблему.Изображение было в формате PNG с разрешением 72 точки на дюйм.Поэтому WPF масштабировал его в соответствии со стандартным разрешением 96 точек на дюйм.Проблема была не в коде.
Другие советы
Если вы знаете разрешение исходного изображения, вы можете установить значения ViewBox и ViewPort в пикселях.Установите для ViewBoxUnits и ViewPortUnits абсолютные значения, и вы сможете добиться желаемого эффекта.
<ImageBrush ViewBox="0,0,200,200"
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />