1-) C# DEVEXPRESS RMOS - grafiğe tooltip ekleme örnek
örnek misal kod :
foreach (DataRow item in dt.Rows)
{
var content = (ViewType)Enum.Parse(typeof(ViewType), pViewType); // ViewType.Bar
string itemDeger = item["toplam"].ToString() + " " + item["" + column + ""].ToString();
series1 = new Series(itemDeger, content); // ViewType.Bar
if (destek[Convert.ToInt32(lookSekil.EditValue)] == true) // destekleyenlerde true yapıyorum
{
((BarSeriesLabel)series1.Label).Visible = true;
}
SeriesPoint serPoint = new SeriesPoint(item["" + column + ""].ToString(), item["toplam"].ToString());
// chartControl1.ToolTipOptions.ShowForSeries = true;
//chartControl1.ToolTipOptions.ShowForPoints = true;
series1.Points.Add(serPoint);
chartControl1.Series.Add(series1);
chartControl1.CrosshairEnabled = DevExpress.Utils.DefaultBoolean.False;
chartControl1.ToolTipEnabled = DevExpress.Utils.DefaultBoolean.True;
// Show a tooltip's beak
ToolTipController controller = new ToolTipController();
chartControl1.ToolTipController = controller;
controller.ShowBeak = true;
// Change the default tooltip mouse position to relative position.
ToolTipRelativePosition relativePosition = new ToolTipRelativePosition();
chartControl1.ToolTipOptions.ToolTipPosition = relativePosition;
// Specify the tooltip relative position offsets.
relativePosition.OffsetX = 2;
relativePosition.OffsetY = 2;
// Specify the tooltip point pattern.
//series1.ToolTipPointPattern = "Bar Series: {A}:{V}";
series1.ToolTipPointPattern = "misal misal \n misal misan \n misal misal misal \n {A}:{V}";
}
2-) DEVEXPRES DÜŞÜK VERSİYON İSE AŞAĞIDAKİ İŞLEMLERİ YAP
1. KULLANILIŞI
using System.Data;
using System.Windows.Forms;
using DevExpress.XtraCharts;
using DevExpress.Utils;
using System.Drawing;
using DXSample;
namespace docShowSeriesPointTooltip
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private ToolTipController toolTipController1 = new ToolTipController();
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'nwindDataSet.Products' table. You can move, or remove it, as needed.
//this.productsTableAdapter.Fill(this.nwindDataSet.Products);
toolTipController1.ReshowDelay = 300;
toolTipController1.InitialDelay = 300;
toolTipController1.AddClientControl(chartControl1, new ChartControlToolTipHelper(chartControl1));
toolTipController1.BeforeShow += new ToolTipControllerBeforeShowEventHandler(OnToolTipControllerBeforeShow);
}
private void OnToolTipControllerBeforeShow(object sender, ToolTipControllerShowEventArgs e)
{
SeriesPoint point = e.SelectedObject as SeriesPoint;
if (point == null) return;
DataRowView rowView = point.Tag as DataRowView;
if (rowView == null) return;
//if (Convert.ToDouble(rowView["UnitPrice"]) > 25) e.Appearance.BackColor = Color.Blue;
//else e.Appearance.BackColor = Color.Green;
}
}
}
2. ChartControlToolTipHelper.cs
using DevExpress.Utils;
using System.Drawing;
using DevExpress.XtraCharts;
using System;
using DevExpress.XtraCharts.Native;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace DXSample {
public class ChartControlToolTipHelperBase :IToolTipControlClient {
public ChartControlToolTipHelperBase(ChartControl chart, bool useInitialDelay, ToolTipIconType iconType, DefaultBoolean allowHtmlText) {
if (null == chart) throw new ArgumentNullException("chart");
fChart = chart;
fUseInitialDelay = useInitialDelay;
fIconType = iconType;
fAllowHtmlText = allowHtmlText;
}
public ChartControlToolTipHelperBase(ChartControl chart, bool useInitialDelay, ToolTipIconType iconType)
: this(chart, useInitialDelay, iconType, DefaultBoolean.Default) { }
public ChartControlToolTipHelperBase(ChartControl chart, bool useInitialDelay) : this(chart, useInitialDelay, ToolTipIconType.None) { }
public ChartControlToolTipHelperBase(ChartControl chart) : this(chart, true) { }
private ChartControl fChart;
protected ChartControl Chart { get { return fChart; } }
private bool fUseInitialDelay;
public bool UseInitialDelay {
get { return fUseInitialDelay; }
set { UseInitialDelay = value; }
}
private ToolTipIconType fIconType;
public ToolTipIconType IconType {
get { return fIconType; }
set { fIconType = value; }
}
private DefaultBoolean fAllowHtmlText;
public DefaultBoolean AllowHtmlText {
get { return fAllowHtmlText; }
set { fAllowHtmlText = value; }
}
protected virtual ToolTipControlInfo GetObjectInfo(Point point) {
ChartHitInfo hitInfo = Chart.CalcHitInfo(point);
if (!hitInfo.InSeries) return null;
return new ToolTipControlInfo(hitInfo.SeriesPoint, GetToolTipText(hitInfo.SeriesPoint),
GetToolTipCaptionForSeriesPoint(hitInfo.SeriesPoint), !UseInitialDelay, IconType, AllowHtmlText);
}
protected virtual string GetToolTipText(SeriesPoint point) {
return "Base tooltip text";
}
protected virtual string GetToolTipCaptionForSeriesPoint(SeriesPoint point) {
return string.Empty;
}
ToolTipControlInfo IToolTipControlClient.GetObjectInfo(Point point) {
return GetObjectInfo(point);
}
bool IToolTipControlClient.ShowToolTips { get { return true; } }
}
public class ChartControlToolTipHelper :ChartControlToolTipHelperBase {
public ChartControlToolTipHelper(ChartControl chart, bool useInitialDelay, ToolTipIconType iconType, DefaultBoolean allowHtmlText)
:base(chart, useInitialDelay, iconType, allowHtmlText) { }
public ChartControlToolTipHelper(ChartControl chart, bool useInitialDelay, ToolTipIconType iconType)
: base(chart, useInitialDelay, iconType) { }
public ChartControlToolTipHelper(ChartControl chart, bool useInitialDelay) : base(chart, useInitialDelay) { }
public ChartControlToolTipHelper(ChartControl chart) : base(chart) { }
protected override string GetToolTipText(SeriesPoint point) {
DataRowView rowView = (DataRowView)point.Tag;
//return string.Format("Unit price = {0}\r\nUnits in stock = {1}\r\nQuantity per unit = {2}", rowView["UnitPrice"], rowView["UnitsInStock"], rowView["QuantityPerUnit"]);
return "DEĞER : "+rowView.Row[0].ToString();
}
}
}