Microsoft图表控件无法将背景设置为透明

时间:2011-10-19 20:43:36

标签: c# mschart

我有一个微软饼图控件。我将背景设置为透明,但它保持白色。如您所见,我已设置BorderSkin的BackColor和PageColor属性。我也设置了ChartArea的BackColor。这是一些代码。

Chart chart = new Chart
            {
                Width = 190,
                Height = 159,
                RenderType = RenderType.BinaryStreaming,
                AntiAliasing = AntiAliasingStyles.Graphics,
                TextAntiAliasingQuality = TextAntiAliasingQuality.Normal
            };

            // turn on transparency
            chart.BorderSkin.BackColor = Color.Transparent;
            chart.BorderSkin.PageColor = Color.Transparent;
            chart.BorderSkin.SkinStyle = BorderSkinStyle.Emboss;

            chart.ChartAreas.Add("");

            chart.ChartAreas[0].AxisX.Interval = 1; // setting this to 1 forces all items to show
            chart.ChartAreas[0].AxisX.LabelStyle.Enabled = true;
            chart.ChartAreas[0].AxisX.TitleFont = xLabelFont;
            chart.ChartAreas[0].AxisX.MajorGrid.Enabled = false;

            chart.ChartAreas[0].AxisY.TitleFont = yLabelFont;
            chart.ChartAreas[0].AxisY.LabelStyle.IsStaggered = false; // staggers axis label
            chart.ChartAreas[0].AxisY.TextOrientation = TextOrientation.Horizontal;
            chart.ChartAreas[0].AxisY.MajorGrid.Enabled = false;
            chart.ChartAreas[0].AlignmentOrientation = AreaAlignmentOrientations.All;

            chart.ChartAreas[0].BackColor = Color.Transparent;
            chart.Series.Add("");
            chart.Series[0].ChartType = SeriesChartType.Pie;
            //chart.Series[0]["PieLabelStyle"] = "Disabled"; // disable labels
            chart.Series[0].IsValueShownAsLabel = true; // *** super important to be able to manually set labels show point labels for value ***

            chart.ChartAreas[0].Area3DStyle.Enable3D = true;

3 个答案:

答案 0 :(得分:1)

我看不到这一行:

chart.BackColor = Color.Transparent;

答案 1 :(得分:1)

图表,图表的区域,图例等的颜色是单独设置的。 请记住添加:

chart.TextAntiAliasingQuality = TextAntiAliasingQuality.SystemDefault;

当您将图表的背景设置为透明时,或者您将获得可怕的低质量字体。

答案 2 :(得分:1)

我需要这两行:

chart.BackColor = Color.Transparent;
chart.ChartAreas[0].BackColor = Color.Transparent;