在画布上绘制单个点的有效方法

时间:2013-11-08 02:00:28

标签: c# windows-phone-7

我正在寻找一种在C#画布上绘制单点(带颜色)的方法。 在android中我会做类似

的事情
paint.Color = Color.Rgb (10, 10, 10);
canvas.DrawPoint (x, y, paint);

所以我认为我可以在Shape class中找到它,但它不在那里。我错过了什么或者没有办法画出一点吗?

在第二种情况下,推荐的绘制点的方法是什么?在HTML5画布中存在类似的问题,人们使用rectangles/circles绘制点。

P.S。一个类似标题Add Point to Canvas的问题没有回答它并进入“如何绘制形状”。

2 个答案:

答案 0 :(得分:2)

我刚刚为UWP跑了同样的问题,我最终决定使用Ellipse:

int dotSize = 10;

Ellipse currentDot = new Ellipse();
currentDot.Stroke = new SolidColorBrush(Colors.Green);
currentDot.StrokeThickness = 3;
Canvas.SetZIndex(currentDot, 3);
currentDot.Height = dotSize;
currentDot.Width = dotSize;
currentDot.Fill = new SolidColorBrush(Colors.Green);
currentDot.Margin = new Thickness(100, 200, 0, 0); // Sets the position.
myGrid.Children.Add(currentDot);

答案 1 :(得分:0)

折线怎么样?

XAML:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <Canvas x:Name="canvas" Background="#00FFFFFF" MouseMove="Canvas_MouseMove">
        <Polyline x:Name="polyline" Stroke="DarkGreen" StrokeThickness="3"/>
    </Canvas>
</Grid>

C#:

private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
    polyline.Points.Add(new Point(0,0));
    polyline.Points.Add(new Point(0, 1));
    polyline.Points.Add(new Point(1, 0));
    polyline.Points.Add(new Point(1, 1));
}