Вопрос

Как определить ширину в пикселях для холста (который имеет определенную ширину)?

У меня есть растровое изображение в элементе управления AnimatedImage, и я знаю ширину растрового изображения в пикселях, и я хочу масштабировать растровое изображение так, чтобы оно по горизонтали точно соответствовало холсту. Как я могу определить эту шкалу?

Примечание. Мне не нужно использовать RenderTargetBitmap, поскольку растровое изображение уже загружено.

Это было полезно?

Решение

В WPF блоки не зависят от устройства. Формула для определения фактического размера пикселя в единице:

Пикселей на единицу WPF = размер константыWPFUnit * разрешение монитора;

Размер вашего элемента в пикселях = Пикселей на единицу WPF * MyElement.ActualWidth

Постоянный размер блока WPF составляет 1/96. Если я правильно помню, DPI монитора можно найти как свойства в классе, возвращенном из SystemInformation.GetPrimaryMonitor или чем-то подобным.

ActualWidth FrameworkElement в единицах, не зависящих от устройства, и представляет собой ширину, которую элемент фактически занимает после размещения макета. Просто умножьте это свойство на пиксели на единицу WPF, которую вы рассчитали выше, и вы получите ответ.

У меня есть подозрение, что вы делаете много ручного кодирования. Растягивание изображений и других визуальных элементов любым желаемым способом обычно может быть достигнуто просто путем установки свойств для рассматриваемого элемента управления / кисти. Вы пытались сделать HorizontalAlignment = " Растянуть " и VerticalAlignment = " Центр " для элемента, который содержит растровое изображение?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top