Wpf 控制原点更改

Wpf 控制原点更改,wpf,Wpf,有谁知道: 为什么有些控件中的原点位于边界的中心,有些控件位于右上角,有些控件位于右上角-10px 如何在WPF中更改控件的原点 尝试的方法: 用于在画布中获取控件的原点:myControl.TranslatePoint(新点(0,0),null) 尝试: myControl.renderTransferMorigin=新点(0.0,0.0); myControl.RenderTransferMorigin=新点(0.5,0.5); myControl.RenderTransferMorigin

有谁知道:

  • 为什么有些控件中的原点位于边界的中心,有些控件位于右上角,有些控件位于右上角-10px
  • 如何在WPF中更改控件的原点
  • 尝试的方法:

  • 用于在画布中获取控件的原点:
    myControl.TranslatePoint(新点(0,0),null)
  • 尝试:
  • myControl.renderTransferMorigin=新点(0.0,0.0);
    myControl.RenderTransferMorigin=新点(0.5,0.5);
    myControl.RenderTransferMorigin=新点(1.0,1.0);
    
    尝试更改垂直对齐和水平对齐。 什么也没发生

    作为分析,我尝试在MouseMove事件中画一条红线,以画布原点作为起点,以画布原点作为终点:

    myLine.X2=myControl.TranslatePoint(新点(0,0),null).X;
    myLine.Y2=myControl.TranslatePoint(新点(0,0),null).Y;
    
    这条线指向控制中心的一些控件,以及右上角的一些其他控件,但从不指向左上角


    所有控件的对齐都设置为拉伸/拉伸。

    通过谷歌搜索,我发现了一些关于类似情况的有趣解释,因为DPI更改/设置:我尝试简单地将DPI从100%切换到120%,然后再切换回来:

    WPF现在报告了我画布上控件的另一个错误定位,但我问题中的所有问题现在似乎都有了解释,而不是解决方案

    错误的DPI集只会影响HitTest、TranslateTransforms和渲染过程,而不会影响Canvas.SetLeft/Right/Top/Bottom或Margin属性或ScaleTransform的准确程度如何

    我在大会上读到了关于禁用Iaawarenessattribute的文章,但它似乎不起作用… 会发生什么