一段完整的Silverlight演示代码[Page.xaml.cs]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using SilverlightInterview.DataService;
using Visifire.Charts;
using Visifire.Commons;
using SilverlightInterview.StockService;
using System.Xml;
using System.Xml.Linq;
using System.IO;


namespace SilverlightInterview
{
    public partial class Page : UserControl
    {
        private TextBox tb;
        private Button btn;
        int clickCount = 0;
        string TopicByDel;
        int i = 0;
        Random rand = new Random(DateTime.Now.Millisecond);
        List<double> ChartValues;
        List<string> ChartKeys;


        public Page()
        {
            InitializeComponent();
            s2.Height = 1;
            ChartValues = new List<double>();
            ChartKeys = new List<string>();
            for (int i = 0; i < 6; i++)
            {
                ChartValues.Add(i*10);
                ChartKeys.Add("网站"+i.ToString());

            }
                CreatChart();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            DataServiceSoapClient ds = new DataServiceSoapClient();
            ds.AddNoteCompleted += new EventHandler<AddNoteCompletedEventArgs>(ds_AddNoteCompleted);
            ds.AddNoteAsync(topic.Text,remark.Text);
            GetList();
          
        }

        public void StartTimer(object o, RoutedEventArgs sender)
        {
            System.Windows.Threading.DispatcherTimer myDispatcherTimer = new System.Windows.Threading.DispatcherTimer();
            myDispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 5000); // 100 Milliseconds
            myDispatcherTimer.Tick += new EventHandler(GetMyChart);
            myDispatcherTimer.Start();
        }


        public void GetMyChart(object o, EventArgs sender)
        {
           
            //UpdateChart();

            GetService();
            UpdateChartByASMX();
        }


        private void CreatChart()
        {
            Chart chart = new Chart();

            chart.Width = 500;
            chart.Height = 300;

            Title title = new Title();

            title.Text = "股市行情表";

            chart.Titles.Add(title);

            DataSeries dataSeries = new DataSeries();

            dataSeries.RenderAs = RenderAs.Column;

            DataPoint dataPoint;

            for (int i = 0; i < 4; i++)
            {
                dataPoint = new DataPoint();
                dataPoint.YValue = rand.Next(10, 100);
                dataSeries.DataPoints.Add(dataPoint);
            }

            chart.Series.Add(dataSeries);
            chart.Name = "mychart";
            chart.Width = 800;
            SP3.Children.Add(chart);

        }

        private void UpdateChart()
        {
            Chart chart = (Chart)SP3.FindName("mychart");
           
            chart.Series.Clear();
            chart.Titles.Clear();

            Title title = new Title();
            title.Text = "股市行情表:"+System.DateTime.Now.ToString();
            chart.Titles.Add(title);

            DataPoint dataPoint;
            DataSeries dataSeries = new DataSeries();

            dataSeries.RenderAs = RenderAs.Column;

            for (int i = 0; i < 5; i++)
            {
                dataPoint = new DataPoint();
                dataPoint.YValue = rand.Next(10, 100);
                dataSeries.DataPoints.Add(dataPoint);
            }
            chart.Series.Add(dataSeries);
        }

        private void GetService()
        {

            StockServiceSoapClient ws = new StockServiceSoapClient();
            ws.GetStockCompleted += new EventHandler<GetStockCompletedEventArgs>(ws_GetStockCompleted);
            ws.GetStockAsync();
        }

        void ws_GetStockCompleted(object sender, GetStockCompletedEventArgs e)
        {

            if (e.Error == null)
            {
                XElement doc = XElement.Load(new StringReader(e.Result));
                GetAllValues(doc);
               

                //using (XmlReader Reader = XmlReader.Create(new StringReader(e.Result)))
                //{
                //    ChartValues = new List<double>();
                //    ChartKeys = new List<string>();
                //    for (int i = 0; i < 4; i++)
                //    {
                //        //Reader.ReadToFollowing("value");
                //        //ChartValues.Add(Convert.ToInt32(Reader.ReadInnerXml()));
                //        //Reader.ReadToFollowing("name");
                //        //ChartKeys.Add(Reader.ReadElementContentAsString());

                //        Reader.ReadToFollowing("value");
                //        ChartValues.Add(Reader.ReadElementContentAsDouble());

                //        //Stock1.Text += ChartValues[i] + "-";
                //    }
                //}
            }
        }

        private void GetAllValues(XElement doc)
        {
            ChartValues = new List<double>();
            ChartKeys = new List<string>();

            var myValues = from pv in doc.Descendants("value")
                           select pv.Value;
            foreach (var v1 in myValues)
                ChartValues.Add(Convert.ToDouble(v1));

            var myKeys = from pn in doc.Descendants("name")
                         //where pn.Value == "方欣科技"
                           select pn.Value;
            foreach (var v1 in myKeys)
                ChartKeys.Add(Convert.ToString(v1));
        }

        private void UpdateChartByASMX()
        {

            Chart chart = (Chart)SP3.FindName("mychart");

            chart.Series.Clear();
            chart.Titles.Clear();

            Title title = new Title();
            title.Text = "股市走势:" + System.DateTime.Now.ToString();
            chart.Titles.Add(title);

            DataPoint dataPoint;
            DataSeries dataSeries = new DataSeries();
            dataSeries.RenderAs = RenderAs.StackedColumn;


            for (int i = 0; i < 6; i++)
            {
                dataPoint = new DataPoint();
                dataPoint.AxisXLabel = ChartKeys[i];
                dataPoint.YValue = ChartValues[i];
                dataSeries.DataPoints.Add(dataPoint);
            }
            chart.Series.Add(dataSeries);

        }


        void ds_AddNoteCompleted(object sender, AddNoteCompletedEventArgs e)
        {
            msg.Text = "添加成功!";
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            GetList();
        }

        private void GetList()
        {
            DataServiceSoapClient ds = new DataServiceSoapClient();
            ds.GetNotesByTopicCompleted += new EventHandler<GetNotesByTopicCompletedEventArgs>(ds_GetNotesByTopicCompleted);
            ds.GetNotesByTopicAsync("*");
           

        }

        void ds_GetNotesByTopicCompleted(object sender, GetNotesByTopicCompletedEventArgs e)
        {
            msg.Text = "读取成功!";
            //myGrid.DataContext=null;
            myGrid.ItemsSource = e.Result;
            myGrid1.ItemsSource = e.Result;
           
        }

 

        private void Button1_Click(object sender, RoutedEventArgs e)
        {

        }

 

        private void myGrid_MouseEnter(object sender, MouseEventArgs e)
        {
            myGrid.Opacity = 1;
        }

        private void myGrid_MouseLeave(object sender, MouseEventArgs e)
        {
            myGrid.Opacity = 0.5;
        }

 

        private void s1_MouseEnter(object sender, MouseEventArgs e)
        {
            colorStoryboard2.Begin();
        }

        private void Slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            if (e.NewValue != e.OldValue)
            {
                //e.NewValue;?
                //myGrid.Width = Slider1.Value;
            }
        }

        private void Button_Click_2(object sender, RoutedEventArgs e)
        {

            (sender as Button).IsEnabled = false;
            s2.Height = 30;

            clickCount ++;
            tb = null;
            btn = null;
            opacityStoryboard1.Begin();
            tb = new TextBox();
            tb.Name = "tbSearch";
            tb.Width = 260;
            s2.Children.Add(tb);

            btn = new Button();
            btn.Name = "btnSearch";
            btn.Content = "...开始搜索" + clickCount.ToString();
            btn.Click += new RoutedEventHandler(btn_Click);
            s2.Children.Add(btn);

        }

        void btn_Click(object sender, RoutedEventArgs e)
        {
            GetSearchResult(((TextBox)s2.FindName("tbSearch")).Text);
        }

        private void GetSearchResult(string searchContent)
        {
            DataServiceSoapClient ds = new DataServiceSoapClient();
            ds.GetNotesByTopicCompleted += new EventHandler<GetNotesByTopicCompletedEventArgs>(ds_SearchByTopicCompleted);
            ds.GetNotesByTopicAsync(searchContent);


        }

        void ds_SearchByTopicCompleted(object sender, GetNotesByTopicCompletedEventArgs e)
        {
            msg.Text = "搜索完成!";
            myGrid.ItemsSource = e.Result;
            myGrid1.ItemsSource = e.Result;
        }


        private void s2_MouseLeave(object sender, MouseEventArgs e)
        {
            s2.Opacity = 0.1;
        }

        private void s2_MouseEnter(object sender, MouseEventArgs e)
        {
            s2.Opacity = 1;
        }


        private void dataGrid1_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            Note bindData = (Note)e.Row.DataContext;
            Button btn1 = myGrid.Columns[3].GetCellContent(e.Row).FindName("ButtonDetail") as Button;
            Button btn2 = myGrid.Columns[3].GetCellContent(e.Row).FindName("ButtonDel") as Button;
           
            btn1.Tag = bindData.ID + "," + bindData.Topic + "," + e.Row.GetIndex();
            //btn1.Content = btn1.Tag;
            btn2.Tag = bindData.ID + "," + bindData.Topic + "," + e.Row.GetIndex();

        }

        private void ButtonDetail_Click(object sender, RoutedEventArgs e)
        {
            Button b = sender as Button;
           
           
            string[] t = b.Tag.ToString().Split(',');
            System.Windows.MessageBox.Show(t[0] + "," + t[1] + "," + t[2], "方欣科技", MessageBoxButton.OKCancel);
        }

        private void ButtonDel_Click_1(object sender, RoutedEventArgs e)
        {
            MessageBoxResult result =
    MessageBox.Show("您确定要删除吗?",
    "方欣科技", MessageBoxButton.OKCancel);

            if (result == MessageBoxResult.OK)
            {
                Button b = sender as Button;
                string[] t = b.Tag.ToString().Split(',');
                TopicByDel = t[1];

                DataServiceSoapClient ds = new DataServiceSoapClient();
                ds.DelByIDCompleted += new EventHandler<DelByIDCompletedEventArgs>(ds_DelByIDCompleted);
                ds.DelByIDAsync(t[0]);
                GetList();
            }

        }

        void ds_DelByIDCompleted(object sender, DelByIDCompletedEventArgs e)
        {
            msg.Text = "已删除:" + TopicByDel;
        }

        private void remark_MouseEnter(object sender, MouseEventArgs e)
        {
            //media1.Position = new TimeSpan(0);   
            //media1.Play();
        }

 

        private void remark_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            //media1.Position = new TimeSpan(0);
            //media1.Play();
        }

 


    }
}

posted @ 2008-12-17 09:53  昕友软件开发  阅读(601)  评论(0编辑  收藏  举报
欢迎访问我的开源项目:xyIM企业即时通讯