2012-02-13 27 views
5

मैंने WPF टूलकिट (3.5) चार्टिंग टूलकिट का उपयोग करके एक चार्ट बनाया है और मुझे वाई-अक्ष लेबल छोटे नंबर प्रदर्शित करने के लिए नहीं मिल सकता है (उदाहरण के लिए .001)। मैंने वाई-अक्ष के क्रमशः न्यूनतम और अधिकतम मानों को .001 और .009 पर सेट किया है और हालांकि चार्ट ग्राफिकल रूप से सही है, वाई-अक्ष रेंज लेबल या तो "0" या ".01" दिखाते हैं। मुझे लगता है कि यह 3.5 टूलकिट में चार्ट नियंत्रण की एक सीमा है, लेकिन मुझे आशा है कि मुझे कुछ याद आ रहा है। यहाँ कुछ उदाहरण कोड है:WPF चार्टिंग टूलकिट वाई-अक्ष लेबल छोटे नंबरों के लिए शून्य के रूप में दिखाई देते हैं

XAML:

<Window x:Class="WpfChartApplication.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525" 
    xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"> 
<Grid> 
    <chartingToolkit:Chart Name="chart1"> 
     <chartingToolkit:LineSeries 
         Title="Rates" 
         ItemsSource="{Binding Rates}" 
         IndependentValueBinding="{Binding Time}" 
         DependentValueBinding="{Binding Value}" 
       > 
      <chartingToolkit:LineSeries.DependentRangeAxis> 
       <chartingToolkit:LinearAxis 
           Orientation="Y" 
           Title="Y Value" 
           ShowGridLines="True" 
         Maximum=".009" 
         Minimum=".001"/> 
      </chartingToolkit:LineSeries.DependentRangeAxis> 
     </chartingToolkit:LineSeries> 

     <chartingToolkit:Chart.Axes> 
      <chartingToolkit:LinearAxis Orientation="X" 
             Title="X Value" 
             ShowGridLines="True" 
             /> 
     </chartingToolkit:Chart.Axes> 
    </chartingToolkit:Chart> 
</Grid> 

और पीछे कोड:

using System.Collections.Generic; 
    using System.Windows; 

namespace WpfChartApplication 
{ 
public partial class MainWindow : Window 
{ 


    public MainWindow() 
    { 
     InitializeComponent(); 

     var cVm = new ChartViewModel(); 
     chart1.DataContext = cVm; 
    } 
} 

public class ChartViewModel 
{ 
    public List<Rate> Rates { get; set; } 

    public ChartViewModel() 
    { 
     Rates = new List<Rate>(); 

     Rates.Add(new Rate(1, .001)); 
     Rates.Add(new Rate(2, .003)); 
     Rates.Add(new Rate(3, .001)); 
     Rates.Add(new Rate(4, .002)); 
     Rates.Add(new Rate(5, .001)); 
     Rates.Add(new Rate(6, .001)); 
     Rates.Add(new Rate(7, .003)); 
     Rates.Add(new Rate(8, .007)); 
     Rates.Add(new Rate(9, .009)); 
     Rates.Add(new Rate(10, .008)); 
    } 
} 

public class Rate 
{ 
    public Rate(int time, double value) 
    { 
     Time = time; 
     Value = value; 
    } 

    public int Time { get; set; } 
    public double Value { get; set; } 
} 
} 

उत्तर

6

आप लेबल शैली बदलें प्रभाव

<Style x:Key="NumericAxisLabelStyle" TargetType="{x:Type chartingToolkit:NumericAxisLabel}"> 
    <Setter Property="IsTabStop" Value="False" /> 
    <Setter Property="StringFormat" Value="{}{0:0.###}" /> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type chartingToolkit:NumericAxisLabel}"> 

     <TextBlock Text="{TemplateBinding FormattedContent}" /> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 

<chartingToolkit:Chart Name="chart1"> 
    <chartingToolkit:LineSeries Title="Rates" 
           ItemsSource="{Binding Rates}" 
           IndependentValueBinding="{Binding Time}" 
           DependentValueBinding="{Binding Value}"> 
    <chartingToolkit:LineSeries.DependentRangeAxis> 
     <chartingToolkit:LinearAxis Orientation="Y" 
            Title="Y Value" 
            ShowGridLines="True" 
            AxisLabelStyle="{StaticResource NumericAxisLabelStyle}" 
            Maximum=".009" 
            Minimum=".001" /> 
    </chartingToolkit:LineSeries.DependentRangeAxis> 
    </chartingToolkit:LineSeries> 
    <chartingToolkit:Chart.Axes> 
    <chartingToolkit:LinearAxis Orientation="X" Title="X Value" ShowGridLines="True" /> 
    </chartingToolkit:Chart.Axes> 
</chartingToolkit:Chart> 
प्राप्त करने के लिए कर सकते हैं

उम्मीद है कि यह मदद करता है। ..

+0

मुझे आश्चर्य है कि यह चार्ट नियंत्रण के लिए डिफ़ॉल्ट व्यवहार नहीं है। आपकी सहायताके लिए धन्यवाद! –

+0

@senor_cardgage कोई जांच नहीं :-) – punker76