簡體   English   中英

WPF OxyPlot 縮放問題

[英]WPF OxyPlot Zooming issue

為了在 X 軸和 Y 軸上具有相同的比例,我使用了PlotType.Cartesian以確保:

_model = new PlotModel();
_model.PlotType = PlotType.Cartesian;

我還可以放大和縮小圖表。

為了控制縮放,我需要在兩個軸上設置AbsoluteMinimumAbsoluteMaximum並指定最小和最大范圍。

我遇到的問題:縮放時如何保持相同的比例? 因為軸是獨立縮放的,並且通常一個軸與另一個軸不同步(當一個軸達到極限而另一個仍然可以擴展時)。

此外,如何為兩個軸設置適當的值,因為如果我設置所有最小值和最大值,我希望設置其他軸上的相應值,如果我使用PlotType.Cartesian ,但它不會發生 - 這就是原因出現問題,因為我無法為兩個軸設置適當的值。

我能得到的最接近的是:

  • 訂閱PlotView Loaded事件(在本例中為_model字段)

  • 在該方法中獲取PlotView ActualHeightActualWidth

有了繪圖區域的大小,可以選擇所需軸的最小值和最大值,然后進行所有計算以保持兩個軸上的比例相同。 例如:

double xMin = -500;
double xMax = 800;
double xRange = xMax - xMin;

double yRange = xRange / ActualWidth * ActualHeight;
double yMin = 58;
double yMax = yMin + yRange;

_model.Axes[0].Minimum = xMin;
_model.Axes[0].AbsoluteMinimum = xMin;

_model.Axes[0].Maximum = xMax;
_model.Axes[0].AbsoluteMaximum = xMax;

// Analogically, define limits of Y axe

此外,使用相同的縮放系數縮放兩個軸也很重要!

這將保證兩個軸上的比例相等,並通過縮放保持縱橫比。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM