Windows手机 - 绘制图形

时间:2014-06-19 20:22:47

标签: c# windows-phone-8

我似乎无法弄清楚如何在C#中的Windows手机应用程序中绘制图形。 我想画画,例如一条线。在旧学校Windows窗体中,我向Windows绘制事件添加了一个事件处理程序。然后使用GDI + Graphics对象。但是在任何控件中都没有绘制事件?

那么如何在Windows手机应用程序的画布上画一条线?


我想我需要澄清一下。 我想创建动态图形,我想使用C#。 我想要一个30 fps的更新频率,我只需要几个图形元素大约100个。

3 个答案:

答案 0 :(得分:0)

首先将Canvas添加到窗体中,然后将.Add()图形对象添加到画布子窗口 - 它使得引擎为您缩放对象,这有点整洁。通常看起来像这样:

line = new **Line**();
line.Stroke = Brushes.Yellow;

line.X1 = 0;
line.Y1 = 0;
line.X2 = 100;
line.Y2 = 100;

line.StrokeThickness = 2;
yourCanvas.Children.**Add(line)**;

从代码中删除** - 它们是为了吸引注意力。

实际上,当我绘制动态超立方体时,我从未使用过XAML版本,但是如果你需要一个静态结构甚至子结构,XAML就是你要走的路。据我所知,Children.Add()在解析的XAML树中动态创建节点,.NET保留在内存中。如果你不能对WPF强加的动态定位图形产生轻微的性能影响,你将不得不坚持使用DirectX或OpenGL以获得更好的性能。

答案 1 :(得分:0)

如果您需要一行,请使用Line class

<Page xmlns="whatever">
   <Grid>
      <Line X1="0" Y1="0" X2="10" Y2="10" Stroke="Blue" StrokeThickness="2"/>
   </Grid>
</Page>

除此之外,请参阅MSDN

忘记你在古老技术中可能学到的任何程序范式。现代技术是陈述性的。

答案 2 :(得分:0)

如果您想要使用DirectX进行2D或3D的低级访问,可以查看SharpDX

Github中有一些samples for Windows Phone,如:

  • MiniCube:在DrawingSurfaceBackgroundGrid
  • 中显示旋转的多维数据集