我正在尝试动态更改setter值。虽然我部分成功了,但仍然无法进一步进行。我的尝试是根据系列更改wpf工具包生成的柱形图的列颜色。我使用单独类的静态成员来设置柱形数据点的背景属性的颜色。通过这种方式,只有最终指定的颜色被设置到所有柱子上,而不管它们是否属于不同的系列。以下是有用的代码片段:
列数据点样式定义如下xaml:
列数据点样式定义如下xaml:
<local:MyBackColor x:Key="mybackresource"></local:MyBackColor>
<Style x:Key="InfocruiserAquaColumn" TargetType="DVC:ColumnDataPoint">
<Setter Property="Background" Value="{Binding Source={StaticResource mybackresource}, Path= myBackColor}"/>
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="1" />...
设置颜色的类:
public class MyBackColor {
private static String _myBackColor;
public static String myBackColor
{
get { return _myBackColor; }
set
{
_myBackColor = value;
//Helpers.InvokePropertyChanged(PropertyChanged, this, "Grade");
}
}
}
在代码中设置颜色:
//Changing the column color
MyBackColor.myBackColor = colorValue;
myStyle = (Style)FindResource("InfocruiserAquaColumn");
ColumnSeries myColumnSeries = new ColumnSeries();
myColumnSeries.Title = "Experience";
myColumnSeries.ItemsSource = seriesData;
myColumnSeries.IndependentValueBinding = new Binding("Key");
myColumnSeries.DependentValueBinding = new Binding("Value");
myColumnSeries.Background = new SolidColorBrush(Colors.Black);
myColumnSeries.DataPointStyle = myStyle;
mcChart.Series.Add(myColumnSeries);
非常感谢您的帮助。