namespace Electric
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private DispatcherTimer timer = new DispatcherTimer();
public CompositeDataSource compositeDataSource1;
private ObservableDataSource<Point> dataSource = new ObservableDataSource<Point>();
List<MyElectric> MyElectric1; public MainWindow()
{
InitializeComponent();
//Loaded += new RoutedEventHandler(Window_Loaded);
} private void AnimatedPlot(object sender, EventArgs e)
{
MyElectric1 = createdata();
List<DateTime> dt = new List<DateTime>();
List<double> myPower = new List<double>();
for (int i = 0; i < MyElectric1.Count; i++)
{
dt.Add(MyElectric1[i].Date);
myPower.Add(MyElectric1[i].CurrentPower);
} var datesDataSource = new EnumerableDataSource<DateTime>(dt);
datesDataSource.SetXMapping(x => dateAxis.ConvertToDouble(x)); var powerDataSource = new EnumerableDataSource<double>(myPower);
powerDataSource.SetYMapping(y => y); compositeDataSource1 = new CompositeDataSource(datesDataSource, powerDataSource);
plotter.AddLineGraph(compositeDataSource1,
new Pen(Brushes.Green, 2),
new CircleElementPointMarker { Size = 5.0, Fill = Brushes.Red },
new PenDescription("Current Power"));
} private void Window_Loaded(object sender, RoutedEventArgs e)
{
MyElectric1 = new List<MyElectric>();
timer.Interval = TimeSpan.FromSeconds(1);
timer.Tick += new EventHandler(AnimatedPlot);
timer.IsEnabled = true;
plotter.Viewport.FitToView();
}
/*为什么用public 显示 可访问性不一致:
* 返回类型“System.Collections.Ceneric.List<Electric.MyElectric>”
* 比方法“Electric.MainWindow.createdata()”的访问性低*/
private static List<MyElectric> createdata()
{
List<MyElectric> result = new List<MyElectric>();
DateTime d = DateTime.Now;
Random rnd = new Random();
double p = rnd.Next(1000);
MyElectric a = new MyElectric
{
Date = d,
CurrentPower = p
};
result.Add(a);
return result;
}
}
}/*现在有两个问题
1.为什么只画出了点,没有画出线
2.曲线的示例在每次画线的时候都会生成一次,这不是我想要的,如何修改代码使示例只生成一次(就是如何是参数new PenDescription("Current Power")只运行一次);
我是新手,可能描述的不大准确,希望各位大牛帮帮忙*/
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private DispatcherTimer timer = new DispatcherTimer();
public CompositeDataSource compositeDataSource1;
private ObservableDataSource<Point> dataSource = new ObservableDataSource<Point>();
List<MyElectric> MyElectric1; public MainWindow()
{
InitializeComponent();
//Loaded += new RoutedEventHandler(Window_Loaded);
} private void AnimatedPlot(object sender, EventArgs e)
{
MyElectric1 = createdata();
List<DateTime> dt = new List<DateTime>();
List<double> myPower = new List<double>();
for (int i = 0; i < MyElectric1.Count; i++)
{
dt.Add(MyElectric1[i].Date);
myPower.Add(MyElectric1[i].CurrentPower);
} var datesDataSource = new EnumerableDataSource<DateTime>(dt);
datesDataSource.SetXMapping(x => dateAxis.ConvertToDouble(x)); var powerDataSource = new EnumerableDataSource<double>(myPower);
powerDataSource.SetYMapping(y => y); compositeDataSource1 = new CompositeDataSource(datesDataSource, powerDataSource);
plotter.AddLineGraph(compositeDataSource1,
new Pen(Brushes.Green, 2),
new CircleElementPointMarker { Size = 5.0, Fill = Brushes.Red },
new PenDescription("Current Power"));
} private void Window_Loaded(object sender, RoutedEventArgs e)
{
MyElectric1 = new List<MyElectric>();
timer.Interval = TimeSpan.FromSeconds(1);
timer.Tick += new EventHandler(AnimatedPlot);
timer.IsEnabled = true;
plotter.Viewport.FitToView();
}
/*为什么用public 显示 可访问性不一致:
* 返回类型“System.Collections.Ceneric.List<Electric.MyElectric>”
* 比方法“Electric.MainWindow.createdata()”的访问性低*/
private static List<MyElectric> createdata()
{
List<MyElectric> result = new List<MyElectric>();
DateTime d = DateTime.Now;
Random rnd = new Random();
double p = rnd.Next(1000);
MyElectric a = new MyElectric
{
Date = d,
CurrentPower = p
};
result.Add(a);
return result;
}
}
}/*现在有两个问题
1.为什么只画出了点,没有画出线
2.曲线的示例在每次画线的时候都会生成一次,这不是我想要的,如何修改代码使示例只生成一次(就是如何是参数new PenDescription("Current Power")只运行一次);
我是新手,可能描述的不大准确,希望各位大牛帮帮忙*/
http://www.cnblogs.com/gnielee/archive/2010/08/02/wpf-cpu-usage.html