首页 文章

控制原点变化

提问于
浏览
0

有人知道吗:

  • 为什么某些控件的原点位于Bounds的中心,TopRight角落的某些位置和TopRight的某些位置 - 10px?

  • 如何在WPF中更改Control的来源?

方法尝试:

  • 用于获取画布中控件的原点: myControl.TranslatePoint(new Point(0,0),null) ;

  • 试过:

myControl.RenderTransformOrigin = new Point(0.0,0.0); myControl.RenderTransformOrigin = new Point(0.5,0.5); myControl.RenderTransformOrigin = new Point(1.0,1.0); 尝试更改VerticalAlignment和HorizontalAlignment . 没啥事儿 .

作为分析,我尝试在MouseMove事件中放置一条红线,其中以Canvas Origin为起点,并作为终点:

myLine.X2 = myControl.TranslatePoint(new Point(0,0),null).X; myLine.Y2 = myControl.TranslatePoint(new Point(0,0),null).Y; 此行指向控制中心的某些控件,以及右上角的其他一些控件,但从不在左上角 .

ALL控件的Alignments设置为Stretch / Stretch .

1 回答

  • 0

    谷歌搜索周围,由于DPI的变化/设置,我发现了类似场景的一些有趣解释:我尝试过简单地将DPI从100%切换到120%并返回:

    WPF现在报告我的Canvas上另一个错误的控件定位,但我的问题中的所有问题,似乎现在有一个解释,还没有解决方案 .

    错误的DPI集可以如何直接影响HitTest,TranslateTransforms和Render过程,而不会影响Canvas.SetLeft / Right / Top / Bottom或Margin propery或ScaleTransform?

    我在汇编中读到了关于DisableDpiAwarenessAttribute的内容,但似乎无法正常工作......会发生什么?

相关问题