我如何在C#for Windows Phone的Canvas上绘制一些东西?
好的,让我更清楚一点。
假设用户在画布上用386,43点击他的手指。 (画布是768乘480)
我希望我的应用程序能够通过在画布上放置一个红点386,43来做出响应。
我有 没有 以前使用Canvas的经验。
如果 这太复杂了,无法在一个问题中回答(可能是这个问题), 请 通过Canvas和Drawing文章给我链接到其他网站。
我如何在C#for Windows Phone的Canvas上绘制一些东西?
好的,让我更清楚一点。
假设用户在画布上用386,43点击他的手指。 (画布是768乘480)
我希望我的应用程序能够通过在画布上放置一个红点386,43来做出响应。
我有 没有 以前使用Canvas的经验。
如果 这太复杂了,无法在一个问题中回答(可能是这个问题), 请 通过Canvas和Drawing文章给我链接到其他网站。
有很多方法可以做到这一点。根据红点的性质,您可以将其设置为UserControl。对于一个基本的圆圈,你可以简单地处理你的画布' ManipulationStarted
事件。
private void myCanvas_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
Ellipse el = new Ellipse();
el.Width = 10;
el.Height = 10;
el.Fill = new SolidColorBrush(Colors.Red);
Canvas.SetLeft(el, e.ManipulationOrigin.X);
Canvas.SetTop(el, e.ManipulationOrigin.Y);
myCanvas.Children.Add(el);
}
我认为你需要以不同的方式解决问题。 (因为这个原因,我没有故意包含代码)。
Windows应用程序(包括Phone)中的表单和控件可以在任何时候出于多种原因进行刷新。如果您在画布上绘制以响应触摸操作,则在下次刷新之前会有一个更新的画布。如果刷新发生,画布重新绘制自己,则最终会得到一个空白画布。
我不知道你的最终目标是什么,但你可能想要跟踪用户做了什么并将该状态存储在某处并在画布的重绘上显示在画布上。这可以通过存储所有操作并在画布上“重放”它们来完成,或者只是将画布视图存储为位图,并在刷新时使用该位图重新加载画布。但是,在后一种情况下,我认为使用画布不是正确的解决方案。