我有一个微软饼图控件。我将背景设置为透明,但它保持白色。如您所见,我已设置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;
答案 0 :(得分:1)
我看不到这一行:
chart.BackColor = Color.Transparent;
答案 1 :(得分:1)
图表,图表的区域,图例等的颜色是单独设置的。 请记住添加:
chart.TextAntiAliasingQuality = TextAntiAliasingQuality.SystemDefault;
当您将图表的背景设置为透明时,或者您将获得可怕的低质量字体。
答案 2 :(得分:1)
我需要这两行:
chart.BackColor = Color.Transparent;
chart.ChartAreas[0].BackColor = Color.Transparent;