WPF: как создать фон, который повторяется по горизонтали без масштабирования?

Я хотел бы создать фон для моего окна, который представляет собой изображение, которое я хочу повторять по горизонтали. До сих пор я пытался использовать ImageBrush, но эта опция повторяет изображение по горизонтали и вертикали. Кроме того, я не хочу, чтобы он масштабировался, когда пользователь меняет размер окна, так как это делает изображение смешным.


person federubin    schedule 23.11.2009    source источник


Ответы (1)


Если то, что вы хотите сделать, это разместить изображение по горизонтали, как в CSS, с простым одним вкладышем «background-repeat: repeat-x», то после некоторых (!) проб и ошибок то, что вам нужно в XAML это:

<ImageBrush ImageSource="Images/my-background-image.png" 
            TileMode="FlipY" 
            Stretch="Uniform"
            AlignmentY="Top"
            Viewport="0,0,90,3000"
            ViewportUnits="Absolute" />

Где последние 2 значения атрибута Viewport — это ширина вашего изображения в пикселях, а затем очень большое число, превышающее высоту вашего окна просмотра, чтобы изображение не повторялось в направлении Y в пределах этой высоты.

person James Close    schedule 12.06.2012
comment
Работает, но это так эзотерично. Плитка есть плитка... не знаю, почему опция «Заголовок» в WPF на самом деле не просто плитка. - person The Muffin Man; 20.10.2017