我目前正在使用PixelLab的BOT(Bag o'技巧)进行ReorderListBox
控制,但我注意到列表项目的mousedown有一些重大减速。
我已将其跟踪到控件创建其DragPreviewAdorner
的方式,特别是GetCurrentDPI
方法,该方法实现为:
Matrix m = PresentationSource.FromVisual(visual)
.CompositionTarget
.TransformToDevice;
x = 96 / m.M11;
y = 96 / m.M22;
事情是,对于我的列表项,M11
和M22
将作为 tiny 数字返回,从而提供非常大的DPI(x = 100000,y = 5500) )。因此,调用代码最终会创建一个巨大的内存中位图,这会在收集垃圾时导致延迟。
我的问题是:在转型中可能导致这些看似错误的价值的原因是什么?一切都在屏幕上看起来很好。 : - /
感谢。