WPF 工具包条形图,以编程方式设置列宽
本文关键字:方式 置列宽 编程 工具包 条形图 WPF | 更新日期: 2023-09-27 18:34:39
我正在尝试以编程方式在 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);
谢谢!
我尝试了同样的方法,但没有任何运气。
ATM,我正在看OxyPlot,它似乎比工具包玩得更好。
这似乎有效:
<oxy:ColumnSeries ... ItemsSource="{Binding Items}" ... ColumnWidth="4"/>
如果需要,也可以从代码中完成。
丑陋的修复,我有同样的问题,但我的显示将是静态的,就列号而言。我在模板中硬编码了边距,增加了宽度。
<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>