原創|其它|編輯:郝浩|2012-07-09 21:38:30.000|閱讀 1956 次
概述:要在數據密集的圖表中選中特定的數據,縮放和滾動是非常有用的功能。 本文主要介紹如何利用鼠標和代碼方式來滾動和縮放teechart圖表。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
要在數據密集的圖表中選中特定的數據,縮放和滾動是非常有用的功能。 本文主要介紹如何利用鼠標和代碼方式來滾動和縮放teechart圖表。
縮放
如果要放大一個圖表,可在你想放大的區域左上角一直按著鼠標左鍵,在縮放區域的右下角拖動矩形框。松開鼠標時,圖表中您所選定的區域將被刷新。
如果要撤銷縮放,可在圖表區域的任何區域一直按著鼠標左鍵向左上角拖動。松開鼠標后圖表就會恢復到原始的圖表。
滾動
要滾動一張圖表,可以一直按著鼠標右鍵,向您想要滾動的方向拖動鼠標。當您松開鼠標后圖表就會停留在一個新的位置。
如果要取消滾動,可在圖表的任何區域一直按著鼠標左鍵向左上角拖動。松開鼠標后圖表就會恢復到原始的圖表。
縮放
縮放功能是默認可用的。通過Zoom.Allow屬性可禁用縮放功能。參考Zoom類與Zoom相關的所有屬性和方法。運用ZoomRect方法來定義要縮放的一個矩形區域。
例如
[C#]
tChart1.Zoom.ZoomRect(new Rectangle(100,100,120,120));
[VB.Net]
TChart1.Zoom.ZoomRect(New Rectangle(100, 100, 120, 120))
ZoomRect中的co-ordinates是在屏幕像素中定義的,在這里0,0是圖表左上角的點。
下面的代碼可使圖表在x軸上的第2和第5點的區域內放大,設定整個圖表y軸上最大和最小的縮放比例:
[C#]
int x = points1.CalcXPos(2);
int y = tChart1.Axes.Left.CalcYPosValue(tChart1.Axes.Left.MaxYValue);
int height = tChart1.Axes.Left.CalcYPosValue(tChart1.Axes.Left.MinYValue) - tChart1.Axes.Left.CalcYPosValue(tChart1.Axes.Left.MaxYValue);
int width = points1.CalcXPos(5) - x;
Rectangle r = new Rectangle(x,y,width,height);
tChart1.Zoom.ZoomRect(r);
[VB.Net]
Dim X As Integer = Points1.CalcXPos(2)
Dim Y As Integer = TChart1.Axes.Left.CalcYPosValue(TChart1.Axes.Left.MaxYValue)
Dim Height As Integer = TChart1.Axes.Left.CalcYPosValue(TChart1.Axes.Left.MinYValue) - TChart1.Axes.Left.CalcYPosValue(TChart1.Axes.Left.MaxYValue)
Dim Width As Integer = Points1.CalcXPos(5) - X
Dim R As New Rectangle(X, Y, Width, Height)
TChart1.Zoom.ZoomRect(R)
使用 'Undo' 撤銷縮放
TChart1.Zoom.Undo
動態縮放
動態縮放提供了更進一步的縮放功能。取代了由“縮小”到“放大”的一步式操作,您可以將Animated屬性設為可用,并為縮放操作定義交錯的步驟。一旦Animated屬性可用,您就可以通過鼠標或代碼手動的進行圖表縮放。例如:
[C#]
int x = points1.CalcXPos(2);
int y = tChart1.Axes.Left.CalcYPosValue(tChart1.Axes.Left.MaxYValue);
int height = tChart1.Axes.Left.CalcYPosValue(tChart1.Axes.Left.MinYValue) - tChart1.Axes.Left.CalcYPosValue(tChart1.Axes.Left.MaxYValue);
int width = points1.CalcXPos(5) - x;
Rectangle r = new Rectangle(x,y,width,height);
tChart1.Zoom.Animated = true;
tChart1.Zoom.AnimatedSteps = 100;
tChart1.Zoom.ZoomRect(r);
[VB.Net]
Dim X As Integer = Points1.CalcXPos(2)
Dim Y As Integer = TChart1.Axes.Left.CalcYPosValue(TChart1.Axes.Left.MaxYValue)
Dim Height As Integer = TChart1.Axes.Left.CalcYPosValue(TChart1.Axes.Left.MinYValue) - TChart1.Axes.Left.CalcYPosValue(TChart1.Axes.Left.MaxYValue)
Dim Width As Integer = Points1.CalcXPos(5) - X
Dim R As New Rectangle(X, Y, Width, Height)
TChart1.Zoom.Animated = True
TChart1.Zoom.AnimatedSteps = 100
TChart1.Zoom.ZoomRect(R)
縮放事件
手動或通過代碼進行放大操作,將會觸發TChart.Zoomed事件。縮小操作將會觸發TChart.UndoneZoom事件。
滾動
在所有的方向上進行滾動操作時默認可用的??墒褂? Scroll.Allow屬性來禁用滾動操作或限制某一個方向上的滾動操作。使用代碼來實現滾動最簡單的方法是用Axis Scroll方法:
[C#]
tChart1.Axes.Bottom.Scroll(3, false);
[VB.Net]
TChart1.Axes.Bottom.Scroll(3, False)
它是不賦值的。'False'表示無論TeeChart是否允許在Series值之間的滾動限制。
控制滾動的另外一種方法是通過代碼定義Axis滾動的最大和最小值:
[C#]
private void Form1_Load(object sender, System.EventArgs e) {
int range = Convert.ToInt32(bar1.XValues.Maximum - bar1.XValues.Minimum / 2);
bar1.FillSampleValues(20);
tChart1.Panning.Allow = ScrollModes.None;
hScrollBar1.Value = range;
hScrollBar1.Minimum = range - 50;
hScrollBar1.Maximum = range + 50;
}
private void hScrollBar1_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e) {
tChart1.Axes.Bottom.Automatic = false;
tChart1.Axes.Bottom.Minimum = e.NewValue;
tChart1.Axes.Bottom.Maximum = e.NewValue + bar1.Count;
}
[VB.Net]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Range As Integer = Bar1.XValues.Maximum - Bar1.XValues.Minimum / 2
Bar1.FillSampleValues(20)
TChart1.Panning.Allow = Steema.TeeChart.ScrollModes.None
HScrollBar1.Value = Range
HScrollBar1.Minimum = Range - 50
HScrollBar1.Maximum = Range + 50
End Sub
Private Sub HScrollBar1_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll
TChart1.Axes.Bottom.Automatic = False
TChart1.Axes.Bottom.Minimum = e.NewValue
TChart1.Axes.Bottom.Maximum = e.NewValue + Bar1.Count
End Sub
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網