除非指定高度和宽度,否则似乎不可见。这是真的吗?
这似乎相当乏味。线条的界限是否意味着正确的宽度和高度?
<Canvas Height="200" Width="200" HorizontalAlignment="Left" Background="Beige">
<!-- This is visible -->
<Line X1="20" Y1="40" X2="70" Y2="90"
Stroke="Black" StrokeThickness="4" Height="100" Width="100" />
<!-- This is not visible -->
<Line X1="10" Y1="10" X2="50" Y2="50"
Stroke="Black" StrokeThickness="4"/>
</Canvas>
(我正在使用Silverlight 3。)
答案 0 :(得分:1)
在SL 4中,MS显示mixing X1, X2, Y1, Y2 with Canvas.Left
的示例根据我自己的经验,使用Visual Studio 2010,为了在设计器视图中看到行,我必须设置非零宽度和高度,同时还使用X,Y来设置该空间内的行。
答案 1 :(得分:0)
不,您可以使用其中一个模板来定义坐标:
如果您一起使用它们,CLR有时可能会显示您的控件错误。
答案 2 :(得分:0)
似乎该线在相对于Line元素的Canvas.Left,Canvas.Top的点(X1,Y1)处绘制。因此,不指定Canvas.Left,Canvas.Top意味着该行实际上是在点(X1,Y1)处绘制的。
它就像控件尺寸(或线的绘图表面)由Canvas.Left,Canvas.Top,Width,Height决定,实际线由(X1,Y1)和(X2,Y2)渲染相对于Canvas.Left,Canvas.Top。
RotateTransform使用Canvas.Left,Canvas.Top值(除非指定了另一个Center),而不是X1等值。因此,如果这些值不同,那么该行上的任何变换都可能无法正常工作。
答案 3 :(得分:0)
我有silverlight 4,我解决了指定画布宽度,画布高度,x1,x2,y1,y2的问题。