【问题标题】:Controls Origin Change控制原点更改
【发布时间】:2011-12-28 14:09:10
【问题描述】:

有谁知道:

  1. 为什么有些控件的原点在边界中心,有些在右上角,有些在右上角 - 10px?
  2. 如何在 WPF 中更改控件的来源?

尝试过的方法:

  1. 用于在画布中获取控件的来源:myControl.TranslatePoint(new Point(0,0),null);
  2. 试过了:

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 和 Horizo​​ntalAlignment。 什么都没发生。

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

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

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

【问题讨论】:

    标签: wpf


    【解决方案1】:

    四处搜索,由于 DPI 更改/设置,我发现了一些类似场景的有趣解释:我尝试简单地将 DPI 从 100% 切换到 120% 并返回:

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

    在不影响 Canvas.SetLeft/Right/Top/Bottom 或 Margin 属性或 ScaleTransform 的情况下,错误的 DPI 设置究竟如何仅影响 HitTest、TranslateTransforms 和 Render 过程?

    我在程序集中阅读了有关 DisableDpiAwarenessAttribute 的信息,但它似乎不起作用...... 会发生什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      相关资源
      最近更新 更多