Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以编程方式添加更多样式设置器?当我尝试时,我得到一个InvalidOperationException异常(SetterBaseCollection正在使用)_C#_Wpf_Charts_Wpf Style - Fatal编程技术网

C# 如何以编程方式添加更多样式设置器?当我尝试时,我得到一个InvalidOperationException异常(SetterBaseCollection正在使用)

C# 如何以编程方式添加更多样式设置器?当我尝试时,我得到一个InvalidOperationException异常(SetterBaseCollection正在使用),c#,wpf,charts,wpf-style,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" /> <

我的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>
在那之后,我想在这个dpStyle中添加更多的setter。完成后,我将图表的DataPointStyle设置为这个dpStyle。然后我得到了一个例外。我该怎么办?请引导我

更新:

异常详细信息(可能需要):

未处理无效操作异常

{“SetterBaseCollection”正在使用(已密封)后,无法对其进行修改。”}


TargetSite:{Void CheckSealed()}我找到了解决方案。我不得不使用Style类的constructor重载:

public Style(Type targetType, Style basedOn);

只需从应用程序中传递样式即可。当前。。。解决了这个问题。酷。

我想出了解决办法。我不得不使用Style类的constructor重载:

public Style(Type targetType, Style basedOn);

只需从应用程序中传递样式即可。当前。。。解决了这个问题。酷。

只是出于好奇。。为什么要动态添加setter?因为我的图表的分辨率取决于用户选择的内容:每小时、每天、每月等。根据选择,我必须自定义显示日期时间的IndependentValueStringFormatProperty。yyyy。嗯,或者嗯,等等。。。有很多这样的组合,我不想在app.xaml中为每一个创建样式。你不能使用触发器吗?只是出于好奇。。为什么要动态添加setter?因为我的图表的分辨率取决于用户选择的内容:每小时、每天、每月等。根据选择,我必须自定义显示日期时间的IndependentValueStringFormatProperty。yyyy。嗯,或者嗯,等等。。。有很多这样的组合,我不想在app.xaml中为每一个创建样式。你不能使用触发器吗?