2011-01-04 22 views
0

Silverlightの縦棒グラフを作成し、ガイドラインthis MSDN Blogに従ってX軸を回転させました。ラベルは正しく回転していますが、X軸にはうまくはまっていないようなラベルが付いてしまいます。私はラベルからひそかを取り除きたいと思います。ここでSilverlightチャートのX軸ラベルでStaggerを削除

はXAMLです:ここでは

<toolkit:Chart Name="theColumnChart" BorderThickness="0" Margin="5" 
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Style="{StaticResource Chart}" 
Template="{StaticResource ChartTemplate}" TitleStyle="{StaticResource ChartTitleStyle}"> 
<toolkit:Chart.Palette> 
    <visualizationToolkit:ResourceDictionaryCollection> 
    <ResourceDictionary> 
     <Style x:Key="DataPointStyle" TargetType="toolkit:ColumnDataPoint" BasedOn="{StaticResource ColumnDataPointStyle}"> 
     <Setter Property="Background" Value="Goldenrod"/> 
     </Style> 
    </ResourceDictionary> 
    <ResourceDictionary> 
     <Style x:Key="DataPointStyle" TargetType="toolkit:ColumnDataPoint" BasedOn="{StaticResource ColumnDataPointStyle}"> 
     <Setter Property="Background" Value="SaddleBrown"/> 
     </Style> 
    </ResourceDictionary> 
    </visualizationToolkit:ResourceDictionaryCollection> 
</toolkit:Chart.Palette> 
<toolkit:Chart.Axes> 
    <toolkit:LinearAxis Minimum="0" Orientation="Y" /> 
</toolkit:Chart.Axes> 
<toolkit:Chart.Series> 
    <toolkit:ColumnSeries DependentValueBinding="{Binding ItemValue}" IndependentValueBinding="{Binding ItemKey}" 
    ItemsSource="{Binding Statistics1}" Title="{Binding SeriesTitle}"> 
    <toolkit:ColumnSeries.IndependentAxis> 
     <toolkit:CategoryAxis Orientation="X"> 
     <toolkit:CategoryAxis.AxisLabelStyle> 
      <Style TargetType="toolkit:AxisLabel"> 
      <Setter Property="Template"> 
       <Setter.Value> 
       <ControlTemplate TargetType="toolkit:AxisLabel"> 
        <layout:LayoutTransformer> 
        <layout:LayoutTransformer.LayoutTransform> 
         <RotateTransform Angle="-45"/> 
        </layout:LayoutTransformer.LayoutTransform> 
        <TextBlock Text="{TemplateBinding FormattedContent}"/> 
        </layout:LayoutTransformer> 
       </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      </Style> 
     </toolkit:CategoryAxis.AxisLabelStyle> 
     </toolkit:CategoryAxis> 
    </toolkit:ColumnSeries.IndependentAxis> 
    </toolkit:ColumnSeries> 
</toolkit:Chart.Series> 
</toolkit:Chart> 

が問題の写真です: Staggered and Rotated Columns

答えて

0

レイチェル・マーティン、

上のラベルはまだへの十分な余地がないことを十分に広いですそれらのすべてをお互いに近づけてください。テキストをさらに回転させる(各ラベルを狭くする)か、グラフを広くする(ラベルに余裕ができます)を選択できます。これらのオプションのいずれかが嫌いな場合は、ふらついた動作を削除することもできますが、データビジュアライゼーションコードを変更する必要があります。私はここで説明します:http://blogs.msdn.com/b/delay/archive/2010/03/06/turn-your-head-and-check-out-this-post-how-to-easily-rotate-the-axis-labels-of-a-silverlight-wpf-toolkit-chart.aspx#10083036

+0

ああは、。私は-90°をしてかなり良い結果を得ることができます。私はあなたのちょっとした提案に興味がありますが、私はこのリンクが正しいとは思わない。 LayoutTransformerのコードに戻ります。 –

+0

@Rachel:答えはDavidのリンクがあなたを連想させる特定のコメントです。ツールキットのソースコードを入手、調整、コンパイルする必要があります。 – AnthonyWJones

+0

はい、それは今や理にかなっています。私はCategoryAxisをサブクラス化しようとしましたが、この作業に時間を割く価値がないと判断しました。 –

4

ラベルを90°回転させると、視覚的に十分なスペースがあっても、ずれが発生します。その理由は不明です。だから私は彼らの間に十分なスペースを持つ垂直のずらしたラベルで終わる!

今日、私は問題を抱えていましたが、コントロール自体の変更を必要としないカスタムコントロールテンプレートのみが含まれている、ちょっとしたソリューションが見つかりました。

次のコードは、日付ラベルを縦に表示し、ずれを取り除いています。

すべてのラベルはCanvasにラップされています。これは、説明したようにhereの内容をクリップしません。 ラベルの余白を変更して、軸のマークに合わせる必要がありました。ここ

<toolkit:DateTimeAxis.AxisLabelStyle> 
      <Style TargetType="toolkit:DateTimeAxisLabel"> 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate TargetType="toolkit:DateTimeAxisLabel"> 
          <Canvas Height="55"> 
           <sdk:Label Content="{Binding StringFormat=\{0:dd/MM/yyyy\}}" Margin="-30,30,0,0" > 
            <sdk:Label.RenderTransform> 
             <RotateTransform Angle="-90" /> 
            </sdk:Label.RenderTransform> 
            <sdk:Label.RenderTransformOrigin> 
             <Point>0.5, 0.5</Point> 
            </sdk:Label.RenderTransformOrigin> 
           </sdk:Label> 
          </Canvas> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
      </Style> 
     </toolkit:DateTimeAxis.AxisLabelStyle> 

結果である:理にかなって

chart with stagger removed

関連する問題