关于在a中定位元素的常见问题Canvas是"如何定位元素的中心(而不是左上角)".
提出了几种解决方案,但它们都有缺点.
最简单的解决方案是在以编程方式设置Canvas.Left和Canvas.Top属性期间适应元素大小.这有效,但只有一次.此解决方案不支持绑定,并且在元素大小更改时会中断.您也无法设置Canvas.Left或Canvas.Top使用
另一套方案涉及转换的转换利用两种RenderTransform或Margin.这些解决方案需要将一些属性绑定到-0.5 * Width或-0.5 * Height.这种绑定需要创建自定义ValueConverter,并且不可能仅使用XAML创建.
那么,是否有一种简单的方法可以在画布中定位元素,使其Canvas.Left与Canvas.Top元素的中心对应,并且大小和位置属性都可以绑定到其他属性?
关于在a中定位元素的常见问题Canvas是"如何定位元素的中心(而不是左上角)".
提出了几种解决方案,但它们都有缺点.
是否有一个简单的(仅限XAML)方法将一个元素放在画布中,以便它Canvas.Left与Canvas.Top元素的中心对应,并且大小和位置属性都可以绑定到其他一些属性?
我在WPF中找到了一种非常简单的方法(仅Margin="-1000000" 使用WPF中的XAML设置在Canvas内部定位元素(而不是左上角)),但它不适用于Silverlight/WinRT .我知道的唯一其他方法需要创建ValueConverter才能执行x *= -0.5计算(不仅仅是XAML).