2016-09-12 61 views
0

如何處理每10分鐘不斷擴展的IndependentdependentValuePath? 將包括ScrollViewer處理這種情況?如何處理在獨立和dependentValues中保持擴展的折線圖

假設,下面是使用圖表:

<Charting:LineSeries Title="station1" Margin="0" FontSize="16" FontWeight="SemiBold" IndependentValuePath="Q_interval" DependentValuePath="Q_size" IsSelectionEnabled="True"> 

    <Charting:LineSeries Title="Terminal 1" Margin="10" FontSize="16" Foreground="Blue" FontWeight="SemiBold" Foreground="Purple" BorderBrush="Red" IndependentValuePath="Q_interval" DependentValuePath="Q_size" IsSelectionEnabled="True"> 
    <Charting:LineSeries.DataPointStyle> 
     <Style TargetType="Charting:LineDataPoint"> 
     <Setter Property="Width" Value="20" /> 
     <Setter Property="Height" Value="20" /> 
     <Setter Property="Background" Value="Blue"/> 
     <Setter Property="FontWeight" Value="SemiBold"/> 
     </Style> 
    </Charting:LineSeries.DataPointStyle> 
    </Charting:LineSeries> 
</Charting:Chart> 

回答

0

如何處理獨立和dependentValuePath是守在每10分鐘擴大。

可以使用DispatherTimer控制independentdependent值每隔10分鐘。

是否包含ScrollViewer將處理這種情況?

LineChat在WinRTXamlToolKit中可以自動排列軸,您不需要讓ScrollViewer處理它。

下面是關於每2秒擴展independentdependent的完整演示。

XAML代碼

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <charting:Chart 
     x:Name="LineChart" 
     Title="Line Chart" 
     Margin="70,0" 
     Foreground="Red" 
     FontSize="10"> 
     <charting:LineSeries 
      x:Name="line1" 
      Title="Population in 2005" 
      DependentValueBinding="{Binding Value}" 
      IndependentValueBinding="{Binding Name}" 
      IsSelectionEnabled="True" /> 
    </charting:Chart> 

後面的代碼,

public sealed partial class NewChart : Page 
{ 
    private Random _random = new Random(); 
    private EventThrottler _updateThrottler = new EventThrottler(); 
    private readonly DispatcherTimer _timer; 
    private int total = 1; 
    public NewChart() 
    { 
     this.InitializeComponent(); 
     _timer = new DispatcherTimer 
     { 
      Interval = TimeSpan.FromSeconds(2) 
     }; 
     _timer.Tick += AddlineChat; 
     _timer.Start(); 
    } 

    private void AddlineChat(object sender, object e) 
    { 
     total += 1; 
     _updateThrottler.Run(
      async() => 
      { 
       var sw = new Stopwatch(); 
       sw.Start(); 
       this.UpdateCharts(total); 
       sw.Stop(); 
       await Task.Delay(sw.Elapsed); 
      }); 
    } 

    private void RunIfSelected(UIElement element, Action action) 
    { 
     action.Invoke(); 
    } 
    private void UpdateCharts(int n) 
    { 
     var items1 = new List<NameValueItem>(); 
     var items2 = new List<NameValueItem>(); 
     var items3 = new List<NameValueItem>(); 
     for (int i = 0; i < n; i++) 
     { 
      items1.Add(new NameValueItem { Name = "Name" + i, Value = _random.Next(10, 100) }); 
     } 
     this.RunIfSelected(this.LineChart,() => ((LineSeries)this.LineChart.Series[0]).ItemsSource = items1); 
    } 
} 

public class NameValueItem 
{ 
    public string Name { get; set; } 
    public int Value { get; set; } 
} 

共享我的演示到GitHub上,請參閱here

+0

已下載該應用。當我使用vs2015 Community ver打開它時,我遇到了一些運行該應用程序的問題,因爲它是空的。我可以看到文件夾中的文件,但VS2015說它不可用。所以,我創建了一個項目來使用你的文件。但是我需要下載哪一個? WinRTXamlToolkit.UWP或任何版本都可以使用?或者爲您的應用程序使用WinRTXamlToolkite.Control.DataVisualization.Windows。 – MilkBottle

+0

[WinRT XAML Toolkit for Windows 10](https://www.nuget.org/packages/winrtxamltoolkit)和[WinRTXamlToolkit.Controls.DataVisualization](https://www.nuget.org/packages/winrtxamltoolkit.Controls。 DataVisualization)是必需的。 –

+0

我的項目需要14393 SDK。嘗試一下,如果仍然無法運行,請告訴我您正在使用的SDK版本。 –