WPF工具包条形图,以编程方式设置列宽

时间:2013-10-10 09:45:51

标签: c# wpf bar-chart wpftoolkit

我正在尝试以编程方式在WPF工具包条形图中设置列系列的宽度。以下是现有代码。但是我无法使用ColumnDataPoint.WidthProperty设置宽度。

任何建议都会有很大的帮助!

    Style columnStyleRed = new Style(typeof(ColumnDataPoint));
    columnStyleRed.BasedOn = this.Resources["CustomStyle"] as Style;
    Setter setBackgroundRed = new Setter(ColumnDataPoint.BackgroundProperty, new SolidColorBrush(Colors.DarkRed));
    Setter setWidth = new Setter(ColumnDataPoint.WidthProperty, 20);
    columnStyleRed.Setters.Add(setBackgroundRed);

谢谢!

2 个答案:

答案 0 :(得分:0)

我尝试了同样没有任何运气。

ATM,我在看OxyPlot,它看起来比工具包好多了。

这似乎有效:

<oxy:ColumnSeries ... ItemsSource="{Binding Items}" ... ColumnWidth="4"/>

如果需要,也可以从代码中完成。

答案 1 :(得分:0)

丑陋的修复,我遇到了同样的问题,但我的显示器对于列号来说将是静态的。我对模板中的边距进行了硬编码,增加了宽度。

   <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="DVC:ColumnDataPoint">
                <Grid>
                    <Rectangle
                                Fill="{TemplateBinding Background}"
                                Stroke="Black"
                                StrokeThickness="1"
                        Margin="0,0,-20,0"/>
                    <Grid
                                Background="Transparent"
                                Margin="0 -20 0 0"
                                HorizontalAlignment="Stretch"
                                VerticalAlignment="Top">
                        <TextBlock
                            HorizontalAlignment="Center"
                            Background="Yellow"        
                            Text="{TemplateBinding FormattedDependentValue}"
                                    FontWeight="Bold"
                            FontSize="8"
                                    Margin="5,5,-20,2"/>
                    </Grid>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>