在WPF项目的UserControl中使用winformchart

时间:2017-02-26 15:58:59

标签: c# wpf winforms user-controls

我正在尝试在UserControl中显示图表。在Window中执行它时工作正常。

xaml代码:

<WindowsFormsHost x:Name="host" Height="300" Width="300">
  <winformchart:Chart x:Name="MyWinformChart">
    <winformchart:Chart.Series>
      <winformchart:Series Name="series" ChartType="Line"/>
    </winformchart:Chart.Series>
    <winformchart:Chart.ChartAreas>
      <winformchart:ChartArea/>
    </winformchart:Chart.ChartAreas>
  </winformchart:Chart>
</WindowsFormsHost>

背后的代码:

using System.Collections.Generic;
using System.Windows.Controls;
using System.Windows.Forms.DataVisualization.Charting;

namespace DragonLink.View {
    public partial class TXSpectrumAnalyzer : UserControl {
        Dictionary<int, double> value;
        public TXSpectrumAnalyzer() {
            InitializeComponent();

            value = new Dictionary<int, double>();
            for (int i = 0; i < 10; i++)
                value.Add(i, 10 * i);

             Chart chart = this.FindName("MyWinformChart") as Chart;
             chart.ChartAreas.Add("Default");
             chart.DataSource = value;
             chart.Series["series"].XValueMember = "Key";
             chart.Series["series"].YValueMembers = "Value";
        }
    }
}

在Window中使用此代码可以正常工作。 有人能告诉我为什么它不能在UserControl中工作或者用其他方式来显示winForm图表吗?

先谢谢。

1 个答案:

答案 0 :(得分:0)

找出问题所在。由于某种原因,当窗口的属性AllowTransparency设置为True时,不会显示图表。改变这个假,它起作用了。