我创建了一个新的通用应用项目(VS 2015),并希望通过单独的线程在页面上随机绘制一个圆圈。请看下面的简单代码 - 实际绘制圆圈需要添加什么?
谢谢!
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.UI.ViewManagement;
using Windows.UI.Xaml.Shapes;
using System.Threading.Tasks;
namespace CircleDraw {
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
this.Loaded += MainPage_Loaded;
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
Task.Factory.StartNew(() => DrawNewCircleEverySecondAsync(), TaskCreationOptions.LongRunning);
}
private static Random r = new Random(DateTime.UtcNow.Millisecond);
private const int minRadius = 25;
private const int maxRadius = 100;
private async Task DrawNewCircleEverySecondAsync()
{
double height = grid1.ActualHeight;
double width = grid1.ActualWidth;
while (true)
{
int x = r.Next((int)width);
int y = r.Next((int)height);
int radius = r.Next(minRadius, maxRadius);
// How do I draw this new circle here?
await Task.Delay(1000);
}
}
}
}
答案 0 :(得分:0)
如果你只想在屏幕上画一个圆圈,试试这个:
var Ellipse1 = new Ellipse();
Ellipse1.Fill = new SolidColorBrush(Windows.UI.Colors.Transparent);
Ellipse1.Stroke = new SolidColorBrush(Windows.UI.Colors.DarkGreen);
Ellipse1.Width = radius * 2; //Diameter is twice the radius
Ellipse1.Height = radius * 2;
Ellipse1.SetValue(Canvas.LeftProperty, System.Convert.ToDouble(x)); //X value
Ellipse1.SetValue(Canvas.TopProperty, System.Convert.ToDouble(y)); //Y value
layoutRoot.Children.Add(Ellipse1); //Add the circle to the page. Could also use a canvas in place of layoutRoot.
这需要:
使用Windows.UI.Xaml.Shapes;
我还没有尝试过异步,但我不知道它为什么不起作用。
有关在Windows Universal中绘制形状的详细信息,请参阅: https://docs.microsoft.com/en-us/windows/uwp/graphics/drawing-shapes