2013-03-27 10 views
5

के लिए विंडोज 8, डब्ल्यूपीएफ, सिल्वरलाइट के लिए आधुनिक यूआई (मेट्रो) चार्ट्स मैं एक अच्छा चार्ट-नियंत्रण खोज रहा हूं और पाया" Modern UI (Metro) Charts for Windows 8, WPF, Silverlight " यह नियंत्रण वास्तव में अच्छा दिखता है लेकिन मुझे विजुअल स्टूडियो के लिए इसकी आवश्यकता है 2010 और 4.0। मूल स्रोत विजुअल स्टूडियो 2012 अंड 4.5 में लिखा गया है इसलिए मैंने कक्षा फ़ाइलों के साथ एक नई परियोजना बनाने की कोशिश की। सब ठीक काम करता है। मैं कक्षाओं को संकलित कर सकता हूं और डीबग कर सकता हूं। लेकिन परिणाम एक खाली खिड़की है। मुझे नहीं पता कि गलती कहां है। कारण है कि मैं कुछ तस्वीरें पोस्ट फ़ाइलें अपरिवर्तित thats हैं:".NET 4.0

काम कर नमूना the working sample

की नकल की 4.0 नमूना copied 4.0 sample

काम कर नमूना स्नूप the working sample Snoop

4 की प्रतिलिपि बनाई 0 नमूना स्नूप copied 4.0 sample Snoop

उत्तर

0

मुझे वीएस -2010 के साथ काम करने के लिए दो चीजें करना पड़ा। पहला यह था कि चार्टबेस के लिए डेटाकॉन्टेक्स्ट सेट करते समय डाटाबेसिंग लाया नहीं जा रहा था। इसके परिणामस्वरूप साजिश करने के लिए कोई डेटा नहीं था।

private void OnSeriesSourceChanged(IEnumerable oldValue, IEnumerable newValue) 
{ 
    this.Series.Clear(); 
    if (newValue != null) 
    { 
     foreach (object item in newValue) 
     { 
      if (SeriesTemplate != null) 
      { 
       ChartSeries series = LoadDataTemplate<ChartSeries>(SeriesTemplate, item); 
       if (series != null) 
       { 
        // set data context 
        series.DataContext = item; 
        this.Series.Add(series); 
       } 
      } 
     } 
    } 
    UpdateGroupedSeries(); 
} 

private static T LoadDataTemplate<T>(DataTemplate template, object dataContext) 
    where T : FrameworkElement 
{ 
    DependencyObject element = template.LoadContent(); 
    T view = element as T; 
    view.DataContext = dataContext; 

    var enumerator = element.GetLocalValueEnumerator(); 
    while (enumerator.MoveNext()) 
    { 
     var bind = enumerator.Current; 

     if (bind.Value is BindingExpression) 
     { 
      view.SetBinding(bind.Property, ((BindingExpression)bind.Value).ParentBinding); 
     } 
    } 

    return view; 
} 

दूसरा मैं था सही Generic.xaml फ़ाइल सहित करने के लिए परियोजना को बदलने के लिए: कि मैं LoadDataTemplate है कि तब सामग्री लोड करता है के माध्यम से लूप और सभी databindings सेट का उपयोग करने के ChartBase.OnSeriesSourceChanged बदल ठीक करने के लिए। De.TorstenMandelkow.MetroChart.WPF/थीम्स के तहत एक का उपयोग करना सुनिश्चित करें। इसे बेसचर्ट स्टाइल को शामिल करने की आवश्यकता है।

एचटीएच

2

नए मेट्रो चार्ट वास्तव में अच्छे हैं! जैसा कि आपने उल्लेख किया है, वे विंडोज 8 और .NET 4.5 को लक्षित कर रहे हैं, लेकिन आप उन्हें वीएस 2010 में .NET 4.0 के साथ विंडोज 7 पर भी चलाने के लिए प्राप्त कर सकते हैं। http://thusithamabotuwana.wordpress.com/2014/02/02/charting-with-wpf/ पर एक नज़र डालें यदि आपको प्रारंभ करने के तरीके पर त्वरित ट्यूटोरियल की आवश्यकता है।