我有一个 WPF ColumnSeries 图表,看起来不太完美。我想知道如何通过三种不同的方式改进它
去除渐变效果。我传递了纯色作为 ItemColor,例如绿色,但我得到了渐变颜色。有没有办法消除这个影响。我知道渐变色听起来是个天才的想法,而且看起来也不错。但在我正在做的小事情中,这不是一个好主意。在下面的图片中,第一张是我现在拥有的,第二张是我想要的。灰色是渐变色(见红圈那一栏)
在 y 轴右侧显示 y 轴上的散列标记(次网格线)。它目前位于左侧并且是黑色的。我想知道如何显示轴右侧的线条,以及是否可以设置线条的颜色,那就太好了。(请参阅附在蓝色圆圈中的图片)
(我实际上已经找到了答案 http://msmvps.com/blogs/deborahk/archive/2011/03/05/silverlight-charting-formatting-the-tick-marks.aspx http://msmvps.com/blogs/deborahk/archive/2011/03/05/silverlight-charting-formatting-the-tick-marks.aspx)
- 删除列的白色边框。我查过了史努比。但是,我仍然不知道边界位于哪一层。 (请看附图黑圈内的那张)
请阅读下面的一小段代码,看看我现在拥有什么。
<charting:ColumnSeries DependentValuePath="ItemValue" IndependentValuePath="ItemName" ItemsSource="{Binding}">
<charting:ColumnSeries.DataPointStyle>
<Style TargetType="charting:ColumnDataPoint">
<Setter Property="Background" Value="{Binding ItemColor}"/>
<Setter Property="BorderBrush" Value="Transparent"/>
</Style>
</charting:ColumnSeries.DataPointStyle>
</charting:ColumnSeries>
<charting:Chart.Axes>
<charting:LinearAxis Orientation="Y" ShowGridLines="True"/>
<charting:CategoryAxis Orientation="X" ShowGridLines="False"/>
</charting:Chart.Axes>
对于ItemColor,后面的代码是:
ItemColor = new System.Windows.Media.SolidColorBrush((System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("Gray"));
我知道这有点旧并且已经回答了,但是我在试图找出与 Jan 在问题 1 中询问的相同的事情时发现了这篇文章,随后我偶然发现了一种不太复杂的方法来消除条形内的渐变。所以我想我应该为后代分享。
我想到的技巧是忽略栏背景颜色,并通过设置其颜色来设置 ColumnSeries 颜色边框画笔颜色,然后将 BorderThickness 设置为大得离谱(例如 100)。如果该值足够大(与可能的数据集相比),则边框将完全覆盖条形图的内部,并且渐变填充将不可见。如果它太大,它不会溢出或不会出现任何奇怪的行为,所以在这里“太大”是有意义的。 (尽管如果有人认为这有可能引起问题,我肯定想知道!)
这是 XAML:
<chartingToolkit:ColumnSeries.DataPointStyle>
<Style TargetType="chartingToolkit:ColumnDataPoint">
<Setter Property="BorderBrush" Value="Blue"/>
<Setter Property="BorderThickness" Value="100"/>
<Setter Property="DependentValueStringFormat" Value="{}{0:C0}"/>
</Style>
</chartingToolkit:ColumnSeries.DataPointStyle>
它看起来像这样:
显然,它并不完美,您放弃了在列周围设置实际边框,但如果这适合您的目的,那么它比重新模板化图表要简单得多,并且允许您更轻松地控制值格式等内容(我那里需要货币格式,正如您从代码中看到的那样)。
希望这对某人有用或感兴趣。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)