WPF altında C# .Net altında bir GUI geliştiriyorum.Aynı zamanda gömülü aygıtla seri iletişim için bir uygulama, sık sık alınan verilerle bir çizgi grafik göstermek istiyorum.Ve ayrıca bu çizelgeleri kaydetmek ve yazdırmak için bir seçenek sunmak için bir seçenek sağlar. Bunu, ücretsiz kütüphaneler veya yazılımların desteği ile dinamik olarak çizebilir miyim?C# WPF Uygulamasında Dinamik Çizgi grafiği
6
A
cevap
9
Tüm WPF grafik gereksinimleri için Dynamic Data Display kullanıyorum. Çizelgeleri kaydetmeyi destekler, çok hızlıdır, kesintisiz yakınlaştırma ve kaydırma sağlar. Ad alanı: xmlns: d3 = "http://research.microsoft.com/DynamicDataDisplay/1.0"
XAML:
<d3:ChartPlotter Name="plotter" Background="White">
<d3:ChartPlotter.Resources>
<conv:Date2AxisConverter x:Key="Date2AxisConverter"/>
</d3:ChartPlotter.Resources>
<d3:ChartPlotter.HorizontalAxis>
<d3:HorizontalDateTimeAxis Name="dateAxis"/>
</d3:ChartPlotter.HorizontalAxis>
<d3:Header Content="{Binding PlotHeader}"/>
<d3:VerticalAxisTitle Content="Value"/>
<d3:HorizontalAxisTitle Content="Date"/>
</d3:ChartPlotter>
C# Kod: Dönüştürücü
public class Date2AxisConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is DateTime && targetType == typeof(double))
{
return ((DateTime)value).Ticks/10000000000.0;
// See constructor of class Microsoft.Research.DynamicDataDisplay.Charts.DateTimeAxis
// File: DynamicDataDisplay.Charts.Axes.DateTime.DateTimeAxis.cs
// alternatively, see the internal class Microsoft.Research.DynamicDataDisplay.Charts.DateTimeToDoubleConversion
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// try Microsoft.Research.DynamicDataDisplay.Charts.DateTimeAxis.DoubleToDate
throw new NotSupportedException();
}
#endregion
}
C# Code kullandı: Grafiği Temizleme ve çizgi grafiği oluşturma, Burada benim StockasticProcessPoint bir alan "DateTime t" ve bir alan "Çift değer" olan bir yapıdır.
using Microsoft.Research.DynamicDataDisplay;
using System.Collections.ObjectModel;
using Microsoft.Research.DynamicDataDisplay.DataSources;
public void ClearLines()
{
var lgc = new Collection<IPlotterElement>();
foreach (var x in plotter.Children)
{
if (x is LineGraph || x is ElementMarkerPointsGraph)
lgc.Add(x);
}
foreach (var x in lgc)
{
plotter.Children.Remove(x);
}
}
internal void SendToGraph() {
IPointDataSource _eds = null;
LineGraph line;
ClearLines();
EnumerableDataSource<StochasticProcessPoint> _edsSPP;
_edsSPP = new EnumerableDataSource<StochasticProcessPoint>(myListOfStochasticProcessPoints);
_edsSPP.SetXMapping(p => dateAxis.ConvertToDouble(p.t));
_edsSPP.SetYMapping(p => p.value);
_eds = _edsSPP;
line = new LineGraph(_eds);
line.LinePen = new Pen(Brushes.Black, 2);
line.Description = new PenDescription(Description);
plotter.Children.Add(line);
plotter.FitToView();
}
Bununla, WPF'de bir grafiği çizebilmeniz gerekir. Seri bağlantı noktasından geri döndüğünde veri eklemek sorun olmamalı. Ayrıca DynamicDataDisplay'den bağlanan örneklere de bakabilirsiniz.
İlgili konular
- 1. iOS çizgi çizme çizgi grafiği
- 2. ChartJs çizgi grafiği
- 3. Esnek diyagonal çizgi grafiği R
- 4. Dikey çizgi ile NVD3 çizgi grafiği
- 5. Java grafiğinde çizgi grafiği nasıl düzeltilir?
- 6. C# ve WPF kullanarak çizgi grafikler çizmek için ne kullanıyorsunuz?
- 7. WPF: WPF uygulamasında WPF TextBox
- 8. NA değerlerine sahip ggplot çizgi grafiği
- 9. Ggplot2'de pürüzlü çizgi grafiği nasıl geliştirilir?
- 10. Ggplot kullanarak nasıl yönlü çizgi grafiği oluşturulur?
- 11. iphone uygulamasında çizgi grafik nasıl oluşturulur?
- 12. Google çizgi grafiği/Google çizgi grafiği açıklaması için kendi özel efsaneleriniz nasıl yazılır?
- 13. Google Çizgi Grafiği: Birimler nasıl eklenir?
- 14. D3.js çubuğu ve çizgi grafiği birleştiriyor
- 15. d3 Çizgi Grafiği Arbitrary Line Doldurma
- 16. Rx Tampon benim WPF uygulamasında
- 17. nasıl bir WPF uygulamasında
- 18. Mojolicious uygulamasında "Dinamik" rotalar
- 19. C: WPF
- 20. WPF: GroupBox dinamik yüksekliği
- 21. nasıl dinamik olarak JavaFX 2.0 çizgi grafikte çizgi stilini değiştirmek için? Bizim JavaFX projede
- 22. iPython defterinde dinamik olarak güncelleştirme grafiği
- 23. Highcharts grafiği csv dosyasından dinamik olarak günceller
- 24. C# .NET Görevler: birden fazla görevi benim WPF uygulamasında
- 25. C# WPF uygulamasında hata işleme ile radyo düğmesi doğrulaması
- 26. WPF uygulamasında Modal İleti Kutusu
- 27. Seçilen Simge WPF Uygulamasında Uygulanmıyor
- 28. Görüntü wpf uygulamasında sürükleyip bırakın
- 29. WPF MVVM uygulamasında DbContext'i yönetme
- 30. iPhone uygulamasında C++ kodu
Bu kitaplık dosyalarını projeme nasıl ekleyebilirim. Tüm .dll dosyalarını eklemek zorunda olup olmadığımı indirdim – Mukthi
Visual Studio'da, projenin Referanslar klasöründe -> Add Reference. Projenize DynamicDataDisplay.dll dosyasını ekleyin. Diğer harici referanslarla aynı. – NetSquirrel
Check out: Kaynak kodu ve nuget kurulumu için https://github.com/apoydence/DynamicDataDisplay ve https://www.nuget.org/packages/DynamicDataDisplay/. – Andrew