国产精品久久久久久2021,日韩精品无码av中文无码版,亚洲精品久久久午夜麻豆,无码成人精品日本动漫纯h

010-68421378
當前您所在的位置:首頁>新聞中心>行業(yè)動態(tài)

LightningChartUltimate 組件

發(fā)布時間:2022/04/01 瀏覽量:4060
LightningChartUltimate 組件

 

使用 LightningChart®.NET 函數(shù)庫

為使用 LightningChart®.NET 組件,必須添加引用 Arction .dll 文件。這些.dll 文件可在安裝文件夾中找到。在開發(fā)應(yīng)用程序時需要用到以下程序集

Arction.WinForms.Charting.LightningChartUltimate.dll.

Arction.Wpf.Charting.LightningChartUltimate.dll

 Arction.DirectX.dll

Arction.RenderingDefinitions.dll

Arction.Wpf.SemibindableCharting.LightningChartUltimate.dll

Arction.DirectX.dll

Arction.RenderingDefinitions.dll

Arction.Wpf.BindableCharting.LightningChartUltimate.dll

Arction.DirectX.dll

Arction.RenderingDefinitions.dll

Arction.Wpf.SignalProcessing.SignalTools.dll

 

以上參考文件添加成功后,在建立項目時,全部所需的程序集會自動復制到輸出文件夾中。

由于 Arction.DirectXFiles.dll 文件過大,會增加初始化時間,添加引用文件時不會自動包括在內(nèi)。只有當系統(tǒng)中沒有正確的 DirectX 程序集的時候才需要添加。Arction.DirectXInit.dll 程序會檢查已有的.dll 文件,并在需要時加載這些文件。一經(jīng)加載后,會將 DirectX-dlls 文件寫入到 Windows 的緩存文件夾,供 LightningChart 在將來需要時訪問使用,這樣就加快了初始化速度。

建議不要把 Arction.DirectXFiles.dll 列入引用文件,而是將其復制到 exe.文件。

 

用代碼創(chuàng)建圖表

LightningChartUltimate 組件可以通過從 toolbox 中拖拽來添加,或者完全采用代碼隱藏(代碼后置)方式來添加。以代碼形式來創(chuàng)建圖表對象具有更方便地更新版本的優(yōu)勢。此外,還可以避免一些與(反)序列化相關(guān)的問題。

以下示例演示了一種以代碼隱藏方式(.xaml.cs 文件)創(chuàng)建一個 WPF 無綁定圖表的方法。

 

using Arction.Wpf.Charting;

namespace ExampleProject

{

 public partial class ExampleApp : Page

 {

 private LightningChartUltimate _chart = null;

 public ExampleApp()

 {

 InitializeComponent();

 CreateChart();

 }

 private void CreateChart()

 {

 _chart = new LightningChartUltimate();

 //父容器中的圖表控件

 (Content as Grid).Children.Add(_chart);

 // 圖表未正確設(shè)置,禁用渲染 Disable rendering until the whole chart is set up correctly.

 _chart.BeginUpdate();

 // 配置圖表Configure chart here.

 // 渲染圖表Allow rendering the chart.

 _chart.EndUpdate();

 }

 } }

 

從工具箱添加至 Windows Forms 項目

將 LightningChartUltimate 控件從 toolbox 添加至設(shè)計窗中,會出現(xiàn)一個圖表,其屬性顯示在Properties 窗口中。

 

 

屬性

對屬性可以進行自由修改。此外,還可以將新的系列和其他對象插入到其集合中。系列數(shù)據(jù)點必須通過代碼表示。

 

事件處理程序

圖表主級別的事件處理程序,可以使用屬性網(wǎng)格進行分配。對于已添加至集合的對象而言,必須通過代碼來分配事件處理程序。

 

有關(guān)更新版本的最佳方法

圖表屬性數(shù)據(jù)經(jīng)過序列化, 存放至 Visual Studio 項目的.resx 文件中。版本更新后,LightningChartUltimate API 會出現(xiàn)一點小變化,可能導致在.resx 文件中新版本存在不兼容的序列化結(jié)果。

 

為了便于更新,強烈建議創(chuàng)建圖表對象,以代碼形式添加所有系列、事件處理程序等。然后項目正確加載,在編譯時顯示可能的錯誤,這讓修復這些錯誤比修復.resx 文件更容易。采用.resc 文件,一些屬性定義可能會丟失,但采用代碼,這些屬性的具體定義一直都不會變。

 

從工具箱添加至 WPF 項目

從 toolbox 向 Window 或另一個容器添加 LightningChartUltimate 部分綁定或全綁定 WPF 控件。圖表會出現(xiàn)在設(shè)計窗口,并且其屬性會在 Properties 窗口顯示出。XAML 編輯器可以顯示出具體內(nèi)容以及對圖表默認屬性做出的修改。

 

屬性

對屬性不僅可以進行自由修改,而且可以將新的系列以及其他對象插入到其集合中。

 

事件處理程序

圖表主級別的事件處理程序,可以使用屬性網(wǎng)格進行分配。對于已添加至集合的對象而言,必須通過代碼來分配事件處理程序。

 

 

添加至 Blend WPF 項目

在“Projects”選項卡中,選擇“References”。右鍵單擊并選擇“Add reference…”,然后瀏覽,從 c:\program files (x86)\Arction\LightningChart .NET SDK v.8\LibNet4 中搜尋到Arction.WPF.Charting.LightningChartUltimate.dll 文件。

選擇“Assets”選項卡。然后在搜索框中輸入“Lightning”。在搜索結(jié)果中會顯示帶有LightningChartUltimate 的行。再將對象拖動到 WPF 窗口中

 

 

 

有關(guān)版本更新的最佳方法

圖表屬性數(shù)據(jù)采用 XAML 存儲。新版本的屬性設(shè)置略有不同,會導致 LightningChartUltimate 對象不會出現(xiàn)在設(shè)計窗中。隨后需要進行相關(guān)的 XAML 修改。XAML 標簽樹可能會非常龐大,并且可能會非常難以進行編輯。

為了便于更新,強烈建議在設(shè)計窗中創(chuàng)建圖表對象,設(shè)置好其布局,并對齊相關(guān)屬性。使用代碼設(shè)置其他部分?;蛘邎D表對象也使用代碼創(chuàng)建。

 

防止圖表模糊

這是 WPF 的一個共同特征,而且與圖表本身無關(guān),但采用 LightningChart 精確渲染后會變得清 晰明顯。

 

設(shè)置圖表父控件 UseLayoutRounding = True ,可以防止圖表看上去模糊不清。雖然圖表在設(shè)計窗中可能仍然看上去模糊,但是當運行應(yīng)用程序后會看的很清晰。父控件例如 Grid, Canvas, DockManager 等

 

對象模型

掌握 LightningChart 對象模型的最好方法是使用 Visual Studio 的 Properties editor(屬性編輯器)。

 

 

Windows Forms 與 WPF 之間的區(qū)別

就 Chart 一級而言,Windows Forms 和 WPF 的屬性樹以及對象模型幾乎是完全相同的。二者主 要不同之處如下;

 

 

LightningChart 視圖

LightningChart 的主要視圖如下:

 

通過設(shè)置 ActiveView 屬性可以對可視化視圖進行更改。默認視圖為 ViewXY。

 

設(shè)置可視化視圖為3D

chart.ActiveView = ActiveView.View3D;

 

視圖與縮放區(qū)域定義

LightningChart 視圖包含了幾個不同的區(qū)域,各自反映了不同的信息。這些區(qū)域根據(jù)視圖的內(nèi)容可以看做是幾個平面矩形,但無論視圖類型如何,這些定義都是一致的;特別是在縮放操作時,將決定要顯示圖表的哪部分區(qū)域。

 

 

 

設(shè)置背景填充

所有的視圖的背景填充都一樣。

chart.Background.Color = Color.DarkBlue;

chart.ChartBackground.Color = Colors.DarkBlue;

 

背景填充支持以下幾種方式:

chart.ChartBackground.GradientFill = GradientFill.Cylindrical;

chart.ChartBackground.GradientColor = Colors.Black;

chart.ChartBackground.GradientDirection = -45;

 

 

 

 

 

 

 

設(shè)置透明背景

在 WPF 中,可將圖表設(shè)置成顯示為透明,這樣在圖表下方的對象可以透過圖表顯示出來。

 

設(shè)置 ChartBackground.Color = #00000000(全透明黑色)

注意!不要設(shè)置 ‘Transparent’ (#00FFFFFF)。該設(shè)置無法穿透顯示。

WinForms 不支持控件透明背景。

 

配置外觀/性能設(shè)置

ChartRenderOptions (在 WinForms 中為 RenderOptions)包含用于配置外觀和性能的屬性。

 

 

 

DeviceType

// 通過代碼更改渲染設(shè)備

chart.ChartRenderOptions.DeviceType = RendererDeviceType.Auto;

 

Auto 也稱為 AutoPreferD11 選項,此為默認設(shè)置。

 

AutoPreferD9 更傾向于 DirectX9 硬件渲染,并根據(jù)可用性依照順序:HW9 -> HW11 -

 

> SW11 -> SW9 自動選擇設(shè)備。當硬件不可用時,則會返回至 WARP(SW11)軟件渲染。

 

AutoPreferD11 更適合 DirectX11 硬件渲染,并根據(jù)可用性依照順序:HW11 -> HW9 -> SW11 -> SW9 自動選擇設(shè)備。當硬件不可用時,則會返回至 WARP(SW11)軟件渲染。這可作為一種通用的高性能和最佳外觀設(shè)置使用。 比起采用 DirectX9 渲染程序,視覺外觀會更好。

 

HardwareOnlyD9 僅使用 hardware 9 來進行渲染。

 

HardwareOnlyD11 僅使用 hardware 11 來進行渲染。

 

SoftwareOnlyD11 使用 DirectX11 WARP,這與 DirectX9 參考光柵設(shè)備相比非??欤ǖ扔布x項慢)

 

SoftwareOnlyD9 使用 DirectX9 參考光柵設(shè)備(非常慢)

 

None 如果圖表被隱藏或者在背景中處于非使用狀態(tài),設(shè)置 DeviceType 為 None,可以將圖表資源釋放給其他圖表。

 

GPUPreference

chart.ChartRenderOptions.GPUPreference = GPUPreference.SystemSetting;

 

適用于帶有雙圖形適配器系統(tǒng)的計算機,主要是帶有集成了低性能 GPU 的 CPU/芯片組和較高性能圖形 GPU(例如 AMD 或者 Nvidia)的筆記本電腦。

 

SystemSetting 使用在 Windows、AMD 或 Nvidia 控制面板的圖形設(shè)置中可選擇的選項。

 

PreferHighPerformanceGraphics 使用高性能 GPU(若系統(tǒng)中存在)。通常會帶來更佳的新能表現(xiàn),但能耗較高。

 

PreferLowPowerGraphics 使用較低性能的集成 GPU(即便系統(tǒng)中安裝有高性能的

GPU)默認情況下,PreferHighPerformanceGraphics 為首選。不要取消此項會獲得最佳的性能。

 

FontsQuality

chart.ChartRenderOptions.FontsQuality = FontsRenderingQuality.High;

 

Low 性能最佳,字體邊緣更光滑。仔細選擇字體類型,獲得最合意的外觀效果。

 

Mid 其性能與 Low 幾乎相似。字體邊緣同樣具有反鋸齒效果。此項為默認設(shè)置。

High 外觀最佳,但對性能表現(xiàn)有很大影響。

 

注意: 出于渲染技術(shù)限制,透明背景不適用于采用 High 質(zhì)量設(shè)置的 DirectX 11 渲染,但可適用于 DirectX9 。

 

AntiAliasLevel

chart.ChartRenderOptions.AntiAliasLevel = 1;

全屏反鋸齒系數(shù)。其實用性取決于硬件。值越大,外觀越好,但是性能越差。設(shè)置 0 或 1 以達到性能最大化。

 

WaitForVSync

chart.ChartRenderOptions.WaitForVSync = true;

Copyright Arction Ltd 2009-2019 47

建議: 保持默認值。 啟用后,持續(xù)渲染,直到下一次刷新(例如,1/60 秒的下一個倍數(shù))。這只是暫時性建議,例如采用當與外部屏幕捕獲應(yīng)用程序同步,以防止出現(xiàn)條 帶化,或當屏幕頂部的圖像與屏幕底部不同步時。這可能顯示為中斷的波形數(shù)據(jù)。在啟用后,特別是在 WPF 中,性能會受到明顯影響

 

UpdateType

chart.ChartRenderOptions.UpdateType = ChartUpdateTypes.Sync;

 

Sync (default): 圖表同步更新。圖表在最后一次 EndUpdate()調(diào)用后更新,或者當設(shè)置屬性(或調(diào)用一個 method)會改變圖表時更新。屬性的改變(沒有

BeginUpdate…EndUpdate)會引發(fā)即時渲染新幀。

 

Async: 圖表以異步方式更新。圖表在屬性改變后將盡快更新,但是圖表將在隨后的某個的點渲染一個新幀。這也許讓圖表在某些情況下更方便使用。

 

LimitedFrameRate: 幀率受限于在 FrameRateLimit 屬性中規(guī)定的值。0 = 無限制。例如,如果想要最大每秒刷新 10 次,則設(shè)置值為 10。這與 Async 選項類似,但會防止在第一個幀之后立即渲染新的幀,如此以來,減少幀率,但節(jié)省了系統(tǒng)資源。

 

注意! 確保在 LimitedFrameRate 和 Async 模式下正確的線程處理。如果異步更新圖表,并且圖表屬性也同時更新,可能會引發(fā)沖突,導致圖表或應(yīng)用程序奔潰。

 

InvokeRenderingInUIThread

chart.ChartRenderOptions.InvokeRenderingInUIThread = true;

 

在應(yīng)用程序中使用后臺時,來自該線程的所有 UI 更新都必須通過 Invoke(在 WinForms中為 Control.Invoke(),在 WPF 中為 Dispatcher.Invoke())

 

在啟用后,渲染部分將使用內(nèi)部調(diào)用來處理 UI 線程。

 

默認值為 False,因為以線程安全的方式設(shè)置屬性和調(diào)用方法也應(yīng)該要注意到,即使啟用了此屬性,也要防止在圖表的內(nèi)部狀態(tài)中發(fā)生線程沖突。

 

HeadlessMode

chart.ChartRenderOptions.HeadlessMode = true;

 

將此值設(shè)置為 True,可以在后臺服務(wù)、控制臺應(yīng)用程序或其他沒有用戶界面的應(yīng)用程序中使用圖表。

 

DPI 處理器

默認情況下,WPF 應(yīng)用程序支持 DPI(Dots Per Inch 每英寸點數(shù)),而 WinForms 應(yīng)用程序不支持。此外,DPIs 還可用以代替像素來測量尺寸大小。LightningChart 不支持 Per-Monitor DPI 感 知,但支持系統(tǒng)感知,這意味著 WPF 應(yīng)用程序支持 DPI 系統(tǒng)。 在 WinForms 中,默認 DPI 為 72,但若加載了 wpf .dll 文件的話可以忽略,該值會變?yōu)?96。

然而,當移動到具有不同 DPI 設(shè)置的另一個屏幕時,LightningChart 不會自動調(diào)整大小。要啟用大小調(diào)整,需要把 ChartOptions 中的 AllowDPIChangeInduceWindowsResize 屬性設(shè)置為 true ?;蛘撸脩艨梢宰缘?OnDPIChanged 事件并更改它的 allowWindowResize 屬性。這些在WinForms 不起作用。

 

// 啟動自動調(diào)整大小

chart.Options.AllowDPIChangeInduceWindowResize = true;

// 通過 OnDPIChanged –事件

chart.OnDPIChanged += chart_OnDPIChanged;

private void chart_OnDPIChanged(LightningChartUltimate chart, float dpix, float dpiy, ref bool

allowWindowResize) {

allowWindowResize = true; }

 

DpiHelper 類

LightningChart 的 DpiHelper 類,包含與 DPI 相關(guān)的問題的 helper 類。

 

DpiAware 聲明系統(tǒng)進程是否被 DPI 感知。但是,目前還無法區(qū)分系統(tǒng)感知和 per-monitor 感知。bool isDPIAware = DpiHelper.DpiAware;

 

DpiXFactor/ DpiYFactor 是屏幕寬度/高度的系統(tǒng) DPI 的有效縮放系數(shù)。該系數(shù)說明了在 X/Y 方向上每一個 DPI 有多少個實際像素。

 

float dpiXFactor = DpiHelper.DpiXFactor;

 

DipToPx and PxToDip 方法使用系統(tǒng) DPI 設(shè)置將 DIP 轉(zhuǎn)換為像素,反之亦然。它們可以轉(zhuǎn)換單個點或像素,也可以轉(zhuǎn)換矩形的大小和位置值。

 

double pixelValue = DpiHelper.DipToPx(dipValue);

 

反鋸齒

通過 AntiAliasing 屬性可以控制反鋸齒,即根據(jù)相關(guān)組件通過一個布爾值或 LineAntialias 枚舉設(shè)置。對于后者而言,目前有兩個可用的選項:

seriesEventMarker.Symbol.Antialiasing = true; pointLineSeries.LineStyle.AntiAliasing = LineAntialias.Normal;

 

圖表的 AntiAliasLevel 系數(shù)也會影響反鋸齒效果。這一系數(shù)基于所選的渲染引擎(DirectX9 和DirectX11)來定義應(yīng)用的反鋸齒模式。設(shè)置反鋸齒級別為 0 或 1,結(jié)果是渲染時不應(yīng)用反鋸齒,即使個別組件的 AntiAliasing 屬性設(shè)置為 true 或 LineAntialias.Normal。

 

通過圖表的渲染選項可以設(shè)置 AntiAliasLevel 值:

chart.ChartRenderOptions.AntiAliasLevel = 2;

 

DirectX 11 反鋸齒

在 DirectX11 中,當用反鋸齒渲染時,有幾個共同的特點應(yīng)該考慮到:

 

LineAntiAliasingType.ALAA;Alpha-blending 反鋸齒

LineAntiAliasingType.QLAA;Quadrilateral 反鋸齒

chart.ChartRenderOptions.LineAAType2D = LineAntiAliasingType.ALAA;

 

RasterizerStateDescription 的 IsMultisampleEnabled 和 IsAntialiasedLineEnabled 設(shè)置還會以以下方式(只適用于渲染線條 line rendering)影響 QLAA 和 ALAA 渲染:

 

 

注意!利用 DirectX11 進行 3D 渲染時,除非設(shè)置 AntiAliasLevel 值為 0 或 1,否則所有三角線都總是用反鋸齒渲染。

下一篇:Standard CADEditorX入門
上一篇:Bluebeam:如何在 Revu 中創(chuàng)建目錄

                               

 京ICP備09015132號-996 | 違法和不良信息舉報電話:4006561155

                                   © Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號豪柏大廈C2座11層1105室

                         北京哲想軟件集團旗下網(wǎng)站:哲想軟件 | 哲想動畫

                            華滋生物