StringFormat轴标签

时间:2010-09-10 21:12:43

标签: wpf formatting charts

我将StringFormat = {} {0:C}放在哪里使轴标签具有货币格式?

<DVC:LinearAxis Orientation="X" Interval="500000" ShowGridLines="True" Minimum="0" >
                                    <DVC:LinearAxis.AxisLabelStyle>
                                        <Style TargetType="DVC:AxisLabel">
                                            <Setter Property="Template">
                                                <Setter.Value>
                                                    <ControlTemplate TargetType="DVC:AxisLabel">
                                                        <TextBlock Text="{TemplateBinding FormattedContent}">
                                                            <TextBlock.LayoutTransform>
                                                                <RotateTransform Angle="60"/>
                                                            </TextBlock.LayoutTransform>
                                                        </TextBlock>
                                                    </ControlTemplate>
                                                </Setter.Value>
                                            </Setter>
                                        </Style>
                                    </DVC:LinearAxis.AxisLabelStyle>
                                </DVC:LinearAxis>

5 个答案:

答案 0 :(得分:1)

未经测试,但我认为这样可以解决问题:

<TextBlock Text="{TemplateBinding FormattedContent, StringFormat={}{0:C}}">

(这是您发布的代码的第7行。)

答案 1 :(得分:1)

答案 2 :(得分:1)

ContentStringFormat不再适用于SL4,这种方式对我有用,andulvar on sl forum建议:

如果您只需要一个StringFormat:

<TextBox DataContext="{TemplateBinding Value}" 
 Text="{Binding StringFormat='\{0:MM/dd HH:mm\} '}"/>

或者如果你想使用转换器:

<TextBox DataContext="{TemplateBinding Value}"
  Text="{Binding Converter={StaticResource Double2String}}"/>

我希望通过这种方式帮助某人,我花了很多时间找到正确的方法来做到这一点。

答案 3 :(得分:1)

更好的是,您可以继续在X,Y轴上放置自定义文本,而不仅仅是数字或日期。您只需要一个转换器,将值(数字,日期)转换为更有意义的文本。

<chartingToolkit:LinearAxis Orientation="X" ShowGridLines="True">
                <chartingToolkit:LinearAxis.AxisLabelStyle>
                    <Style TargetType="chartingToolkit:AxisLabel">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="chartingToolkit:AxisLabel">
                                    <TextBlock Text="{TemplateBinding FormattedContent, Converter={StaticResource MileTextConverter}}"></TextBlock>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </chartingToolkit:LinearAxis.AxisLabelStyle>
            </chartingToolkit:LinearAxis>

答案 4 :(得分:0)

<Label> 
   <Label.Content>
        <ContentPresenter Content="{TemplateBinding FormattedContent}" ContentStringFormat="{}{0:C}" />
    </Label.Content>
</Label>