WPF自學筆記(三):波形顯示窗口(ni.Graph)

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u011389706/article/details/80377823

  在開發軟件時,經常有實時顯示數據的需求,所以需要一個波形顯示的窗口。最早在使用WPF製作波形顯示窗口時,都是用Image控件,直接實時計算一幀幀畫圖,然後實時刷新。雖然最終可以實現下圖的效果,但是總歸還是比較複雜。


  後來發現NI(National Instruments)公司開發的有集成好的窗口控件,能很好地應用於WPF裏。所以這裏記錄一下該控件的使用。

1.安裝NI Measurement studio

  官網地址在這裏【NI Measurement studio】,但是是收費的,網上有一些破解版可以自己找找。
  安裝完成後,在VS裏就可以看到Measurement studio了。新建一個NI WPF Application 工程。

2.使用Graph控件

  Measurement studio提供了很多儀表控件,具體可以參看介紹手冊。這裏使用的是ni.Graph控件。xaml代碼如下:

<ni:Graph Name="forceGraph" HorizontalAlignment="Left" Height="300" Margin="197,-1,0,0" VerticalAlignment="Top" Width="800">
    <ni:Graph.Axes>
        <ni:AxisDouble x:Name="horizontalAxisForce" Orientation="Horizontal" Range="1, 10000, System.Double" Adjuster="None"/>
        <ni:AxisDouble x:Name="verticalAxisForce" Orientation="Vertical" Range="-50, 50, System.Double" Label="F(N)"  Adjuster="None"/>
    </ni:Graph.Axes>
    <ni:Graph.Plots>
        <ni:Plot x:Name="plotFx" Label="plotFx">
            <ni:LinePlotRenderer Stroke="OrangeRed" StrokeThickness="1"/>
        </ni:Plot>
        <ni:Plot x:Name="plotFy" Label="plotFy">
            <ni:LinePlotRenderer Stroke="Green" StrokeThickness="1"/>
        </ni:Plot>
        <ni:Plot x:Name="plotFz" Label="plotFz">
            <ni:LinePlotRenderer Stroke="Blue" StrokeThickness="1"/>
        </ni:Plot>
    </ni:Graph.Plots>
</ni:Graph>

  這裏重點要介紹的是ni:Graph控件的兩個屬性

  1.ni:Graph.Axes

  座標軸。設置座標軸的各種屬性,例如範圍,名稱等

  2.ni:Plot

  曲線。每一個ni:Plot可以在圖上顯示一根曲線,所以如果要在一個窗口中顯示多根曲線,只需要多添加幾個ni:Plot。值得一提的是,改變ni:Plot的屬性StrokeDashArray,可以將曲線變成虛線,例如:StrokeDashArray=”4,4”,即將曲線設置成線段長爲4,間隙爲4的虛線。

3.顯示波形數據

  在後臺代碼裏,要顯示數據直接傳遞給ni.Graph的DataSource,然後調用Refresh()方法更新下UI即可顯示曲線。

this.forceGraph.DataSource = MyData; //綁定數據
this.forceGraph.Refresh();  //更新UI

  這裏要注意的是,如果需要顯示多根ni:Plot曲線,傳入的數據MyData則是一個二維數組,每列代表一根ni:Plot曲線的數據。

4.隱藏曲線

  如果多根ni:Plot曲線一起顯示時,可以利用Visibility屬性控制每根曲線的顯示和關閉。

this.plotFy.Visibility == Visibility.Visible; //顯示曲線
this.plotFy.Visibility = Visibility.Hidden; //隱藏曲線

  最終實現的效果如下,點擊左側按鈕可以控制每根曲線的顯示和關閉。整體使用起來還是比自己做控件更方便。


  此外Measurement studio還有winform的波形控件,使用起來比WPF更簡單。是以爲記!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章