簡體   English   中英

“適用於Windows 8的現代UI(Metro)圖表,WPF,Silverlight”,適用於.net 4.0

[英]“Modern UI (Metro) Charts for Windows 8, WPF, Silverlight” for .net 4.0

我正在尋找一個好的圖表控件,並找到了“ 適用於Windows 8,WPF,Silverlight的現代UI(Metro)圖表 ”這個控件看起來非常好,但我需要這個用於Visual Studio 2010和4.0。 原始源代碼是用Visual Studio 2012和4.5編寫的,所以我嘗試用類文件創建一個新項目。 一切都很好。 我可以編譯類並通過調試。 但結果是一個空窗口。 我不知道錯誤在哪里。 這些文件沒有變化,這就是我發布一些圖片的原因:

工作樣本 工作樣本

復制4.0樣本 復制4.0樣本

工作樣本Snoop 工作樣本Snoop

復制4.0樣本Snoop 復制4.0樣本Snoop

新的地鐵圖表真的很棒! 就像你提到的那樣,他們的目標是Windows 8和.net 4.5,但是你也可以在VS 2010中使用.net 4.0在Windows 7上運行它們。 如果您需要有關如何入門的快速教程,請查看http://thusithamabotuwana.wordpress.com/2014/02/02/charting-with-wpf/

我不得不做兩件事來讓它與VS2010一起工作。 第一個是在為ChartBase設置DataContext時沒有帶來數據綁定。 這導致沒有數據可以繪制。 為了解決這個問題,我更改了ChartBase.OnSeriesSourceChanged以使用加載內容的LoadDataTemplate然后遍歷並設置所有數據綁定:

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文件。 一定要使用De.TorstenMandelkow.MetroChart.WPF / Themes下的那個。 它需要包含BaseChartStyle。

HTH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM