Имам WPF приложение с персонализиран контрол. Персонализираният контрол се изобразява в растерно изображение и аз мога да използвам следния код, за да разбера каква резолюция да използвам, така че растерното изображение да съответства на разделителната способност на дисплея.
PresentationSource ps = PresentationSource.FromVisual(this);
if (ps != null)
{
pixelsPerLogicalUnitX = ps.CompositionTarget.TransformToDevice.M11;
pixelsPerLogicalUnitY = ps.CompositionTarget.TransformToDevice.M22;
}
За съжаление, когато изпратя тази контрола към принтера чрез PrintDialog, PresentationSource е null, така че не знам DPI.
Има ли начин да получите DPI (или PresentationSource) за принтера?