У меня есть несколько определений стиля в моем файле App.xaml. Как это:
<Application x:Class="MyClient.App" ... >
<Application.Resources>
<SolidColorBrush x:Key="color1" Color="#FF7D7D" />
<SolidColorBrush x:Key="color2" Color="#FF7D7E" />
<Style x:Key="styleFor1" TargetType="charting:ColumnDataPoint">
<Setter Property="Background" Value="{StaticResource color1}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="charting:ColumnDataPoint">
<Grid>
<Rectangle>
<Rectangle.Fill>
<LinearGradientBrush>
<GradientStop Color="#ffff3737" Offset="0" />
<GradientStop Color="#80000000" Offset="1" />
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<ToolTipService.ToolTip>
<StackPanel>
<ContentControl Content="VALUES:" FontWeight="Bold" />
<ContentControl Content="{TemplateBinding FormattedIndependentValue}" />
<ContentControl Content="{TemplateBinding FormattedDependentValue}" />
</StackPanel>
</ToolTipService.ToolTip>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Я создаю диаграмму. И дайте свой DataPointStyle следующее:
Style dpStyle = Application.Current.Resources["styleFor1"]
после этого я хотел бы добавить еще несколько Setters к этому dpStyle. И когда это будет сделано, я устанавливаю диаграмму DataPointStyle для этого dpStyle. И тогда я получил исключение. Что мне делать? Пожалуйста, направляйте меня.
ОБНОВИТЬ:
Сведения об исключении (возможно, необходимо):
Недопустимое исключение InvalidOperationException
{"После того, как" SetterBaseCollection "используется (запечатан), его нельзя изменить."}
TargetSite: {Void CheckSealed()}
Я понял решение. Мне пришлось использовать эту перегрузку конструкторов класса Style:
public Style(Type targetType, Style basedOn);
Просто передавая ему стиль из Application.Current... решает проблему. Круто.