Mit*_*áti 2 c# wpf charts wpf-style
我的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>
Run Code Online (Sandbox Code Playgroud)
我生成一个图表.并给它的DataPointStyle:
Style dpStyle = Application.Current.Resources["styleFor1"]
Run Code Online (Sandbox Code Playgroud)
之后,我想在这个dpStyle中添加一些Setter.完成后我将图表的DataPointStyle设置为此dpStyle.然后我得到了例外.我该怎么办?请指导我.
更新:
异常详细信息(可能需要):
InvalidOperationException未处理
{"在'SetterBaseCollection'使用(密封)之后,它无法修改."}
TargetSite:{Void CheckSealed()}
我找到了解决方案.我不得不使用Style类的consturctors的这个重载:
public Style(Type targetType, Style basedOn);
Run Code Online (Sandbox Code Playgroud)
只需将Application.Current中的Style传递给它即可解决问题.凉.
| 归档时间: |
|
| 查看次数: |
1307 次 |
| 最近记录: |