В WPF устройства не зависят от устройства. Формула для определения фактического размера пикселя в единице:
пикселей на единицу WPF = постоянный размер WPFUnit * разрешение монитора;
Размер вашего элемента в пикселях = Пикселей на единицу WPF * MyElement.ActualWidth
Постоянный размер блока WPF составляет 1/96. Если я правильно помню, DPI монитора можно найти как свойства в классе, возвращенном из SystemInformation.GetPrimaryMonitor или чем-то подобным.
ActualWidth FrameworkElement в единицах, не зависящих от устройства, и представляет собой ширину, которую элемент фактически занимает после размещения макета. Просто умножьте это свойство на пиксели на единицу WPF, которую вы рассчитали выше, и вы получите ответ.
У меня есть подозрение, что вы делаете много ручного кодирования. Растягивание изображений и других визуальных элементов любым желаемым способом обычно может быть достигнуто просто путем установки свойств для рассматриваемого элемента управления / кисти. Вы пытались сделать HorizontalAlignment = "Stretch" и VerticalAlignment = "Center" для элемента, который содержит растровое изображение?