原創|其它|編輯:郝浩|2012-07-03 21:56:37.000|閱讀 461 次
概述:TeeChart的圖表功能已擴展至移動平臺,其已集成入Android, Windows Phone7 和iPhone/ iPad開發環境,可為之提供圖表,地圖以及儀表盤。TeeChart for Windows Phone 7的使用對有TeeChart API與Silverlight使用經驗的用戶來說是類似的.然而,也有一些該平臺的特殊問題. 本文主要介紹TeeChart .NET在Windows 7上的運行以及與其他TeeChart版本間的不同之處。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
TeeChart的圖表功能已擴展至移動平臺,其已集成入Android, Windows Phone7 和iPhone/ iPad開發環境,可為之提供圖表,地圖以及儀表盤。TeeChart for Windows Phone 7的使用對有TeeChart API與Silverlight使用經驗的用戶來說是類似的.然而,也有一些該平臺的特殊問題. 本文主要介紹TeeChart .NET在Windows 7上的運行以及與其他TeeChart版本間的不同之處。
現在,在Windows Phone 7平臺上開發所需的所有的工具都可從"應用中心" (//create.msdn.com)上下載.在該鏈接的金喜正規買球上,所有需要的免費工具都可以下載.請注意這些工具僅能在Windows 7及以上的平臺上使用.TeeChart .NET for Windows Phone的程序集也依賴于Silverlight for Windows Phone Toolkit,您可以從Codeplex (//silverlight.codeplex.com/)網站上下載.該工具集中的程序集也都在TeeChart .NET Windows Phone 7的示例中被引用.
TeeChart for .NET for Visual Studio 2010的安裝程序在Windows 7上運行時,會自動安裝一個Windows Phone 7的示例程序.該示例可在DemoProjectWindowsPhone文件夾下的Example文件夾中找到.該應用程序可在安裝有Windows Phone 7插件和Silverlight for Windows Phone工具集的Visual Studio 2010中打開,并可在Windows Phone 7設備或者仿真器上運行.
Steema.TeeChart.Silverlight.Drawing.Aspect.RenderSeriesAsImage
RenderSeriesAsImage布爾屬性可獲取或設置TeeChart是否用位圖圖像來渲染序列和序列點.當TeeChart不以位圖圖像來渲染序列,對于有著像素分辨率低的大量數據點的圖表來說,在將其放大到一個大的比例時縮放與拖拽操作速度會更快.
Steema.TeeChart.Silverlight.Drawing.Aspect.GestureOptions
GestureOptions屬性可獲取或設置一個枚舉值(Gestures),用于控制TeeChart .NET for Windows Phone 7響應哪一個動作.所以我們可將該屬性設為Gestures.None,在這種情況下控件將不響應任何的縮放或拖拽動作,您也可將該屬性設置為Gestures.PinchOnly, Gestures.DragOnly或Gestures.PinchAndDrag.
Steema.TeeChart.Silverlight.Drawing.Aspect.GestureStyle
GestureStyles屬性可獲取或設置一個枚舉值(GestureStyles),用于控制TeeChart .NET for Windows Phone 7如何響應縮放與拖拽操作.所以我們可將該屬性設置為GestureStyles.InChart,在這種情況下TeeChart序列與軸將獨立響應縮放與拖拽操作.或者也可設置為GestureStyles.FullChart,在這種情況下整個圖表都會響應縮放與拖拽操作.
由于我們努力維持在縮放與滾動效果上的高水平,以及維持TeeChart API的跨平臺性,所以在TeeChart for Windows Phone 7上不得不做一些妥協.
正如我們所知,每個在TeeChart其他平臺上可實現的功能,在Windows Phone 7同樣也可以實現,不論是禁用縮放與拖拽 (GestureOptions = Gestures.None),還是使用整個圖表的縮放與拖拽(GestureStyle = GestureStyles.FullChart).在激活InChart的縮放與拖拽(GestureStyle = GestureStyles.InChart與GestureOptions != Gestures.None)后,這里通過一個示例來介紹在所有平臺上,包括Windows Phone 7上使用TeeChart的幾個技術點. 在該示例中,想要實現的效果為:當圖表縮放或滾動時,在圖表上跟隨著每個序列點繪制一些文本.在Windows Forms中,我們可通過以下的代碼實現該功能:
Points points;
private void InitializeChart()
{
tChart1.Aspect.View3D = false;
tChart1.AfterDraw += new PaintChartEventHandler(tChart1_AfterDraw);
tChart1.Series.Add(point = new Points());
point.FillSampleValues();
}
void tChart1_AfterDraw(object sender, Graphics3D g)
{
int x = point.CalcXPosValue(point[3].X);
int y = point.CalcYPosValue(point[3].Y);
g.Font.Color = Color.Red;
g.Font.Size = 16;
g.TextOut(x, y, "MyText");
}
在 Windows Phone 7下等同的代碼如下: The equivalent code in Windows Phone 7 is this:
Points point;
private void InitializeChart()
{
tChart1.Aspect.View3D = false;
tChart1.AfterDraw += new PaintChartEventHandler(tChart1_AfterDraw);
tChart1.Series.Add(point = new Points());
point.FillSampleValues();
}
void tChart1_AfterDraw(object sender, Graphics3D g)
{
double x = point.CalcXPosValue(point[3].X);
double y = point.CalcYPosValue(point[3].Y);
g.Font.Color = Colors.Red;
g.Font.Size = 16;
g.TextOut(x, y, "MyText");
}
然而,這兩段代碼并沒有在屏幕上產生相同的結果.為了得到同樣的效果,我們修改了Windows Phone 7下的代碼段,如下:
Points point;
private void InitializeChart()
{
tChart1.Aspect.View3D = false;
//tChart1.AfterDraw += new PaintChartEventHandler(tChart1_AfterDraw);
tChart1.Series.Add(point = new Points());
point.AfterDrawValues += new PaintChartEventHandler(point_AfterDrawValues);
point.FillSampleValues();
}
void point_AfterDrawValues(object sender, Graphics3D g)
{
double x = point.CalcXPosValue(point[3].X);
double y = point.CalcYPosValue(point[3].Y);
g.Font.Color = Colors.Red;
g.Font.Size = 16;
g.TextOut(x, y, "MyText");
}
造成這種情況的原因是,TeeChart for Windows Phone 7渲染不同的圖表元素到不同的畫布,而一般情況下是將所有的圖表元素渲染到同一塊畫布. 所以允許文本跟隨序列畫布上的元素移動時,一個事件將會被選擇用于在同一畫布上繪制,在這種情況下是Series的AfterDrawValues事件.在這種情況下,Chart的AfterDraw事件將在不同的畫布中繪制.
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網