我有一堆数据点,想要双向绑定到画布上的点。
这些点假设y值越大则向上反映,就像大多数数学图形一样。
如何将画布的x、y原点更改为左下角,并颠倒其对y坐标的解释?
(我希望保持在XAML中)
我有一堆数据点,想要双向绑定到画布上的点。
这些点假设y值越大则向上反映,就像大多数数学图形一样。
如何将画布的x、y原点更改为左下角,并颠倒其对y坐标的解释?
(我希望保持在XAML中)
<Canvas>
<Canvas.LayoutTransform>
<ScaleTransform ScaleX="1" ScaleY="-1" CenterX=".5" CenterY=".5" />
</Canvas.LayoutTransform>
</Canvas>
我广泛尝试了ScaleTransform方法:它不起作用。它只移动两个坐标中的一个,而从不同时移动两个坐标。然而,以下方法是有效的:
<Canvas Name="myCanvas" Width="0" Height="0" RenderTransform="1 0 0 -1 0 0"
HorizontalAlignment="Center" VerticalAlignment="Center" >
如果你使用数据绑定,你可以使用类型转换器,但是这需要跳出XAML并且需要事先知道画布的大小。
我可能会创建一个自定义面板,而不是使用Canvas,并为其添加适合您需求的属性。以下是实现自定义面板的示例:
http://blog.boschin.it/articles/silverlight-radialpanel.aspx
像Canvas这样的东西非常简单,因为你不需要在测量和排列覆盖上做太多工作。
你也可以从Canvas继承并重写ArrangeOverride,我没有尝试过,但可能会起作用。