public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
LoadLines();
LoadEllipse();
BuildText();
}
private PointCollection pc = new PointCollection();
//创建渲染效果
private void RenderEffect(ref Polyline p1)
{
DropShadowEffect dse=new DropShadowEffect();
dse.BlurRadius=30;
dse.Opacity=1;
dse.ShadowDepth=0;
dse.Color=Colors.White;
p1.Effect=dse;
}
//使用Polyline画线
private void LoadLines()
{
pc.Add(new Point(10,380));
pc.Add(new Point(60,320));
pc.Add(new Point(110, 365));
pc.Add(new Point(160, 300));
pc.Add(new Point(210,290));
pc.Add(new Point(260,320));
pc.Add(new Point(310,190));
pc.Add(new Point(360,240));
pc.Add(new Point(410,150));
pc.Add(new Point(460,90));
pc.Add(new Point(510,110));
pc.Add(new Point(560,40));
Polyline p1 = new Polyline();
p1.Stroke = new SolidColorBrush(Colors.Yellow);
p1.StrokeThickness = 2;
p1.Points = pc;
RenderEffect(ref p1);
LayoutRoot.Children.Add(p1);
}
//创建椭圆并添加到界面上
private void LoadEllipse()
{
int i = 1;
foreach (Point p in pc)
{
//创建椭圆对象
Ellipse ep = new Ellipse();
ep.Width = ep.Height = 20;
ep.Fill = new SolidColorBrush(Colors.Blue);
ep.VerticalAlignment = VerticalAlignment.Top;
ep.HorizontalAlignment = HorizontalAlignment.Left;
//计算椭圆位置
double left = p.X - ep.Width / 2;
double top = p.Y - ep.Height / 2;
ep.Margin = new Thickness(left,top,0,0);
//添加提示信息
ToolTipService.SetToolTip(ep, string.Format("这是{0}月数据({1})", i, p.X * p.Y));
LayoutRoot.Children.Add(ep);
i++;
}
}
private void BuildText()
{
StackPanel SP = new StackPanel();
SP.VerticalAlignment = VerticalAlignment.Bottom;
SP.Orientation = Orientation.Horizontal;
for (int i = 1; i <= 12; i++)
{
TextBlock tbk = new TextBlock()
{
Text = string.Format("{0}月份", i),
Width = 40,
Margin = new Thickness(5),
//Foreground = new SolidColorBrush(Colors.White),
FontSize = 11
};
SP.Children.Add(tbk);
}
LayoutRoot.Children.Add(SP);
}
}