2011-01-04 11 views
11

मैं चार्टिंगटूलकिट का उपयोग कर रहा हूं: चार्ट नियंत्रण। मैं चार्ट और साजिश क्षेत्र के बीच दिखाई देने वाली सफेद जगह को हटाना चाहता हूं। हटाने के लिए क्षेत्र के WPF नमूना और छवि संलग्न।WPF टूलकिट चार्ट क्षेत्र और साजिश क्षेत्र के बीच स्थान कैसे निकालें?

<Window x:Class="WpfApplication2.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 x:Name="chart" Width="500" Height="300" Margin="0, 0, 0, 0" LegendStyle="{StaticResource LegendStyle}" > 


     <chartingToolkit:AreaSeries ItemsSource="{Binding}" 

            DependentValuePath="Value" 

            IndependentValuePath="Key" 

            Background="Red" 

            > 


     </chartingToolkit:AreaSeries> 

     <chartingToolkit:Chart.Axes> 
      <chartingToolkit:LinearAxis Orientation="X" ShowGridLines="False" Visibility="Hidden"> 

      </chartingToolkit:LinearAxis> 
      <chartingToolkit:LinearAxis Orientation="Y" ShowGridLines="False" Visibility="Hidden"/> 
     </chartingToolkit:Chart.Axes> 

    </chartingToolkit:Chart> 
</Grid> 

क्षेत्र लाल तीर में चिह्नित alt text

उत्तर

20

हटा दिया जाना चाहिए क्रम में इस आप फिर से टेम्पलेट में चार्ट की जरूरत को प्राप्त करने के।

  <ControlTemplate TargetType="charting:Chart"> 
       <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"> 
        <Grid> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="Auto" /> 
          <RowDefinition Height="*" /> 
         </Grid.RowDefinitions> 

         <datavis:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" /> 

         <!-- Use a nested Grid to avoid possible clipping behavior resulting from ColumnSpan+Width=Auto --> 
         <Grid Grid.Row="1" Margin="0,15,0,15"> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="*" /> 
           <ColumnDefinition Width="Auto" /> 
          </Grid.ColumnDefinitions> 

          <datavis:Legend x:Name="Legend" Title="{TemplateBinding LegendTitle}" Style="{TemplateBinding LegendStyle}" Grid.Column="1" /> 
          <chartingprimitives:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}"> 
           <Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" /> 
           <Border Canvas.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" /> 
          </chartingprimitives:EdgePanel> 
         </Grid> 
        </Grid> 
       </Border> 
      </ControlTemplate> 

इस साजिश क्षेत्र, शीर्षक, कथा आदि ... यह भी साजिश क्षेत्र के चारों ओर एक हार्ड-कोडेड मार्जिन शामिल के स्थान का विवरण है, तो आप आप क्या हासिल नहीं कर सकते हैं: इस प्रकार मानक चार्ट टेम्पलेट है चार्ट को स्टाइल करके बाद में हैं। तुम सिर्फ एक चार्ट क्षेत्र और कुछ नहीं चाहते, तो आप चार्ट टेम्पलेट के रूप में निम्नानुसार को आसान बनाने में कर सकते हैं:

xmlns:chartingprimitives="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit" 

<Grid> 
    <chartingToolkit:Chart x:Name="chart" Width="500" Height="300" 
         Margin="0, 0, 0, 0" Padding="0"> 
    <chartingToolkit:AreaSeries ItemsSource="{Binding}" 
            DependentValuePath="Value" 
            IndependentValuePath="Key" 
            Background="Red"> 
    </chartingToolkit:AreaSeries> 
    <chartingToolkit:Chart.Axes> 
     <chartingToolkit:LinearAxis Orientation="X" ShowGridLines="False" Height="0"> 
     </chartingToolkit:LinearAxis> 
     <chartingToolkit:LinearAxis Orientation="Y" ShowGridLines="False" Width="0"/> 
    </chartingToolkit:Chart.Axes> 
    <chartingToolkit:Chart.Template> 
     <ControlTemplate TargetType="chartingToolkit:Chart"> 
     <Border Background="{TemplateBinding Background}" 
       BorderBrush="{TemplateBinding BorderBrush}" 
       BorderThickness="{TemplateBinding BorderThickness}" 
       Padding="{TemplateBinding Padding}"> 
      <Grid> 
      <chartingprimitives:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}"> 
       <Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" /> 
       <Border Canvas.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" /> 
      </chartingprimitives:EdgePanel> 
      </Grid> 
     </Border> 
     </ControlTemplate> 
    </chartingToolkit:Chart.Template> 
    </chartingToolkit:Chart> 
</Grid> 

इस गद्दी है कि आप देख रहे हैं निकाल देंगे।

+0

उदाहरण के लिए धन्यवाद। जब मैं सामग्री जोड़ता हूं, यह काम करता है लेकिन ग्राफ दिखाई नहीं दे रहा है। इसे काम करने के लिए कोई विचार? –

+0

ओउप्स ... ऐसा लगता है कि मैं टेम्पलेट के हिस्सों को काटने में बहुत आक्रामक था। मैंने उपरोक्त मेरी प्रतिक्रिया संपादित की है। ध्यान दें कि अब चार्ट में शून्य पैडिंग है, और अक्षों की शून्य चौड़ाई/ऊंचाई है। – ColinE

+0

आपको बहुत बहुत धन्यवाद .. यह मेरी समस्या हल हो गया –

0

नियंत्रण को फिर से घुमाने के बिना आपको थोड़ा और स्थान देने के लिए, मार्जिन (जैसा आपने किया) और चार्ट नियंत्रण की पैडिंग शून्य पर सेट करें।

Margin="0" Padding="0" 
संबंधित मुद्दे