翻譯|使用教程|編輯:龔雪|2023-07-03 09:44:23.523|閱讀 108 次
概述:本文將介紹在DevExpress VCL v23.1圖表控件中實現一個重要自定義功能,歡迎下載最新版組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
DevExpress VCL擁有230+個VCL界面控件、40+個自定義設計的VCL應用主題,它能幫助您創建優異的用戶體驗,提供高影響力的業務解決方案,并利用您現有的VCL技能為未來構建下一代應用程序。
在剛更新的DevExpress VCL v23.1組件庫中,包含了以下新的一些特性/功能:
在本文中,我們將重點介紹v23.1版本的圖標控件中實現的一個重要特性——自定義軸、系列和總標簽顯示文本的功能,這個新功能對多種使用場景都十分有用,包括需要對所有值標簽應用格式化模式、強調某些軸/系列值、為不同數量級顯示不同的測量單位等。
DevExpress技術交流群8:523159565 歡迎一起進群討論
DevExpress VCL Chart控件現在支持高級格式化模式,類似于我們的WinForms Chart控件,格式化模式可以由靜態文本和一個或多個支持的占位符字段標記組成,這些占位符字段標記包含在大括號中。
所有顯示數值的占位符標記也支持數值格式模式,例如,下面的格式化模式顯示具有兩位小數點的浮點序列值:{V:0.00},大括號外的文本定義了相同格式化模式的通用值標簽。
您可以將相同/不同的格式化模式分配給圖表、參數軸、值軸或簡單序列的總標簽中所有序列值的標簽。
沒有格式化模式的序列值標簽按原樣顯示值,簡單系列也向標簽添加相應的參數。
要在設計時將格式化模式應用于所有值標簽(對于一個系列),您必須:
在這個特殊的實例中,值標簽顯示帶有兩個小數點后跟著一個度量單位的序列值。
要自定義顯示在Doughnut系列中心的Total標簽,您必須:
完成后,Total標簽將使用與value標簽相同的格式:
除了格式化模式(用于自定義值標簽中的顯示文本)之外,還可以根據特定條件自定義單個標簽——例如,可以隱藏中間點的值標簽,或者為不同的數量級顯示不同的測量單位。DevExpress VCL的圖表類包括以下值標簽自定義事件,這些事件在Chart控件決定如何繪制單個標簽時發生:
用戶可以處理這些事件來標識當前處理的標簽,并定義Chart控件在屏幕上繪制標簽的方式。例如,您可以通過以下方式在標記不同數量級的軸和序列值的標簽中顯示不同的測量單位:
要實現這一點,需要處理 事件:
procedure TMyForm.cdAreaGetValueLabelDrawParameters(Sender: TdxChartCustomDiagram; AArgs: TdxChartGetValueLabelDrawParametersEventArgs); begin if AArgs.SeriesPoint.Value >= 1000 * 1000 then // Millions AArgs.Text := Format('%.1fM', [AArgs.SeriesPoint.Value / (1000 * 1000)]) else if AArgs.SeriesPoint.Value >= 1000 then // Thousands AArgs.Text := Format('%.0fk', [AArgs.SeriesPoint.Value / 1000]) else AArgs.Text := Format('%0f', [AArgs.SeriesPoint.Value]); end;
然后,處理事件:
procedure TMyForm.cdAreaGetAxisValueLabelDrawParameters(Sender: TdxChartCustomDiagram; AArgs: TdxChartGetAxisValueLabelDrawParametersEventArgs); begin if AArgs.Axis.ClassName <> 'TdxChartAxisY' then Exit; if AArgs.Value >= 1000 * 1000 then // Millions AArgs.Text := Format('%.1fM', [AArgs.Value / (1000 * 1000)]) else if AArgs.Value >= 1000 then // Thousands AArgs.Text := Format('%.0fk', [AArgs.Value / 1000]) else AArgs.Text := Format('%0f', [AArgs.Value]); end;
因此,序列和軸值標簽顯示不同數量級的不同測量單位:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網