Как добавить изображение к пользовательской метке x-axis для диаграммы windows?
У меня есть требование, что мне нужно добавить изображение к пользовательской метке оси X. когда пользователь нажимает на это изображение, я должен показать всплывающее окно. У меня уже есть текст на оси x, но я тоже хочу изображение вместе с этим текстом.
Любые предложения приветствуются.
Что я уже пробовал:
try { DataTable pcharttable = dataset.PrjSumTable; if (pcharttable.Rows.Count > 0)//(pcharttable.Rows.Count > 0 && comboAssignedto.SelectedValue.ToString() != "All") { if (strassignto == "'All'" || strassignto == "All") { pcharttable.DefaultView.RowFilter = "Assignedto like '" + "%" + "'"; pcharttable.DefaultView.Sort = strsort + " ASC"; pcharttable = pcharttable.DefaultView.ToTable(); } else { pcharttable.DefaultView.RowFilter = "Assignedto in (" + strassignto + ")"; pcharttable.DefaultView.Sort = strsort + " ASC"; pcharttable = pcharttable.DefaultView.ToTable(); } prjchart.Series[0].Points.DataBind(pcharttable.DefaultView, "id", "overdue", null); prjchart.Series[1].Points.DataBind(pcharttable.DefaultView, "id", "current", null); prjchart.Series[2].Points.DataBind(pcharttable.DefaultView, "id", "notyetdue", null); prjchart.Series[3].Points.DataBind(pcharttable.DefaultView, "id", "complete", null); //'Show All Categories on RHS axis prjchart.ChartAreas[0].AxisX.Interval = 1; prjchart.ChartAreas[0].AxisX.LabelAutoFitStyle = LabelAutoFitStyles.DecreaseFont; prjchart.ChartAreas[0].AxisY.Minimum = 0; prjchart.ChartAreas[0].AxisY.Maximum = 100; prjchart.ChartAreas[0].AxisY.Interval = 10; prjchart.ChartAreas[0].AxisY.LabelStyle.Format = "{0}%"; prjchart.ChartAreas[0].AxisY.Title = "Tasks"; prjchart.ChartAreas[0].AxisY.TitleAlignment = StringAlignment.Center; prjchart.ChartAreas[0].AxisY.TitleFont = new System.Drawing.Font("Microsoft Sans Serif", 12); prjchart.ChartAreas[0].AxisX.Title = "Project"; prjchart.ChartAreas[0].AxisX.TitleAlignment = StringAlignment.Center; prjchart.ChartAreas[0].AxisX.TitleFont = new System.Drawing.Font("Microsoft Sans Serif", 12); prjchart.ChartAreas[0].AxisX.Minimum = 0; prjchart.ChartAreas[0].AxisX.Maximum = pcharttable.Rows.Count; prjchart.ChartAreas[0].AxisX.ScrollBar.Enabled = true; prjchart.ChartAreas[0].AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.SmallScroll; prjchart.ChartAreas[0].AxisX.ScrollBar.ButtonColor = System.Drawing.Color.LightGray; prjchart.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true; prjchart.ChartAreas[0].AxisX.ScaleView.Size = 15; prjchart.ChartAreas[0].AxisX.ScaleView.MinSizeType = DateTimeIntervalType.Number; prjchart.ChartAreas[0].AxisX.ScaleView.Position = prjchart.ChartAreas[0].AxisX.Minimum; if (prjchart.ChartAreas[0].AxisX.Maximum< 15) { prjchart.ChartAreas[0].AxisX.ScaleView.Scroll(ScrollType.First); } prjchart.ChartAreas[0].AxisX.ScaleView.Zoomable = false; foreach (Series s in prjchart.Series) { foreach (DataPoint p in s.Points) { if (p.YValues.Length > 0 && (double)p.YValues.GetValue(0) == 0) { p.IsValueShownAsLabel = false; } else { p.IsValueShownAsLabel = true; p.Label = "#VALY"; } } } //remove y axis lines prjchart.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.NotSet;//System.Windows.Forms.DataVisualization.Charting. //ChartArea CA = prjchart.ChartAreas[0]; //CA.Position = new ElementPosition(0, 0, 100, 100); //'Move legend to bottom and center prjchart.Legends[0].Docking = Docking.Top; prjchart.Legends[0].Alignment = StringAlignment.Center; for (int i = 1; i < 4; i++) { prjchart.Legends[0].CustomItems[i].Cells[0].ImageTransparentColor = Color.Red; } // Set tag property for all custom items to appropriate series prjchart.Legends[0].CustomItems[0].Tag = prjchart.Series[0]; prjchart.Legends[0].CustomItems[1].Tag = prjchart.Series[1]; prjchart.Legends[0].CustomItems[2].Tag = prjchart.Series[2]; prjchart.Legends[0].CustomItems[3].Tag = prjchart.Series[3]; prjchart.Titles.Clear(); prjchart.Titles.Add("Dashboard - Project"); }