gpt4 book ai didi

wpf - 在 WPF 中仅使用 XAML 将元素定位在 Canvas 内的中心(而不是左上角)

转载 作者:行者123 更新时间:2023-12-03 23:41:50 25 4
gpt4 key购买 nike

关于在 Canvas 中定位元素的常见问题是“如何定位元素的中心(而不是左上角)”。

  • WPF: Resizing a circle, keeping the center point instead of TopLeft?
  • WPF Center Ellipse at X, Y
  • WPF element positioning on a Canvas

  • 提出了几种解决方案,但它们都有缺点。

    最简单的解决方案是在设置 Canvas.Left 期间适应元素大小。和 Canvas.Top以编程方式设置属性。这有效,但只有一次。此解决方案不支持绑定(bind),并且在更改元素大小时会中断。您也不能设置 Canvas.LeftCanvas.Top使用

    另一组解决方案涉及使用 RenderTransform 的转换转换。或 Margin .这些解决方案需要将一些属性绑定(bind)到 -0.5 * Width-0.5 * Height .此类绑定(bind)需要创建自定义 ValueConverter并且仅使用 XAML 是不可能创建的。

    那么,有没有一种简单的方法可以在 Canvas 内定位元素,使其 Canvas.LeftCanvas.Top对应于元素的中心,大小和位置属性都可以绑定(bind)到其他一些属性?

    最佳答案

    我通过将 Canvas 放入 2x2 网格的右下角单元格来解决这个问题。这使得 0,0 坐标成为网格的中心,然后您可以相对于它进行所有绘图。

    关于wpf - 在 WPF 中仅使用 XAML 将元素定位在 Canvas 内的中心(而不是左上角),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13219321/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com