我有一堆数据点,我想双向绑定到画布上的点。
这些点假设较大的y值像大多数数学图一样反映在向上的方向上。
如何将画布的x,y原点更改为左下角并反转它对y坐标的解释?
(我想留在XAML)
答案 0 :(得分:25)
<Canvas>
<Canvas.LayoutTransform>
<ScaleTransform ScaleX="1" ScaleY="-1" CenterX=".5" CenterY=".5" />
</Canvas.LayoutTransform>
</Canvas>
答案 1 :(得分:2)
我广泛尝试了ScaleTransform方法:它不起作用。它只移动2个坐标中的一个,而不是两个。然而,这与宣传的一样有效:
<Canvas Name="myCanvas" Width="0" Height="0" RenderTransform="1 0 0 -1 0 0"
HorizontalAlignment="Center" VerticalAlignment="Center" >
答案 2 :(得分:0)
如果你使用数据绑定,你可以使用TypeConvertor,但为此你必须走出XAML,你需要事先了解画布的大小。
答案 3 :(得分:0)
我可能会创建一个自定义面板而不是使用Canvas,并为其提供符合您需求的附加属性。以下是实现自定义面板的示例:
http://blog.boschin.it/articles/silverlight-radialpanel.aspx
像Canvas这样的东西非常简单,因为你不必在测量中做很多事情并安排覆盖。
您也可以从Canvas继承并覆盖ArrangeOverride,我没有尝试过,但它可能有效。