CompositionTarget.TransformToDevice包含意外的矩阵值,但为什么呢?

时间:2011-07-12 17:51:10

标签: wpf dpi

我目前正在使用PixelLab的BOT(Bag o'技巧)进行ReorderListBox控制,但我注意到列表项目的mousedown有一些重大减速。

我已将其跟踪到控件创建其DragPreviewAdorner的方式,特别是GetCurrentDPI方法,该方法实现为:

Matrix m = PresentationSource.FromVisual(visual)
                               .CompositionTarget
                                 .TransformToDevice;
x = 96 / m.M11;
y = 96 / m.M22;

事情是,对于我的列表项,M11M22将作为 tiny 数字返回,从而提供非常大的DPI(x = 100000,y = 5500) )。因此,调用代码最终会创建一个巨大的内存中位图,这会在收集垃圾时导致延迟。

我的问题是:在转型中可能导致这些看似错误的价值的原因是什么?一切都在屏幕上看起来很好。 : - /

感谢。

0 个答案:

没有答案