Thursday, May 30, 2013

WPF Chart - How to use the Hippochart in wpf application project

히포차트를 WPF 윈도우 어플리케이션에 추가해보자.

아래 코드는 히포차트 윈도우즈 폼 컨트롤을 WPF 환경에서 사용할 수 있는 샘플 코드입니다. 


xaml

아래와 같이 패널안쪽에 Stretch 형태로 WindowFromHost를 추가합니다.  

 <DockPanel LastChildFill="true">
       <WindowsFormsHost x :Name="WindowsFormsHost1" HorizontalAlignment="Stretch"Margin="0,0,0,0" VerticalAlignment ="Stretch" Width="686" Height="391" Grid.ColumnSpan="2"/>
  </DockPanel>


c#

2개의 히포차트 관련 네임스페이스를 참조합니다. 
아래 코드에서 중요한 것은 코드의 순서인데, this.WindowsFormsHost1 .Child = hh;와 같이 호스트 컨트롤에 추가하는 부분이 DrawChart 하는 부분보다 먼저 나와야 Sizing 트러블이 생기지 않습니다. 



using System;
using System. Collections.Generic;
using System. Linq;
using System. Text;
using System. Threading.Tasks;
using System. Windows;
using System. Windows.Controls;
using System. Windows.Data;
using System. Windows.Documents;
using System. Windows.Input;
using System. Windows.Media;
using System. Windows.Media.Imaging;
using System. Windows.Navigation;
using System. Windows.Shapes;
using Hippo;
using Hippo. WindowsForm4;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        hHippoChart hh = new hHippoChart ();
        public MainWindow()
        {
            InitializeComponent();
            this.WindowsFormsHost1 .Child = hh;
        }

        private void Button_Click_1( object sender, RoutedEventArgs e)
        {
            hh .Width2 = ( float) this.WindowsFormsHost1 .Width;
            hh .Height2 = ( float) this.WindowsFormsHost1 .Height;

            SeriesList sList = new SeriesList ();
            sList .SeriesCollection .Add( new Series());

            Random R = new Random();
            for ( int i = 0; i < 5 ; i++)
            {
                SeriesItem item = new SeriesItem ();
                item .Name = "item" + i.ToString();
                item .YValue = R .Next( 50);

                sList .SeriesCollection[ 0] .items .Add(item);
            }

            hh .SeriesListDictionary .Add(sList);
            hh .DrawChart(); 
        }
    }
}




위 코드를 사용하면 WPF 어플리케이션을 통해 히포차트의 실시간 차트 등 모든 기능을 원활하게 사용할 수 있습니다. 

http://www.hippochart.com/Default.aspx   

No comments:

Post a Comment