常にデータを取得しているグラフがあり、現時点ではリフレッシュ レートが 2 分に設定されています。問題は、チャートが更新されるたびに、色がサイクルの次のものに変わることです。リフレッシュ時にグラフを完全にリセットして、常にパレットの色を毎回 0 または 1 から開始できるのではないかと考えましたが、今のところうまくいきません。何か案は?
アップデート
より良いアイデアのためのいくつかの XAML/コード。
DynamicSeriesChart ヘッドの XAML
<ana:DynamicSeriesChart SeriesSource="{Binding ChartSeries}" Title="{Binding ChartTitle}" Palette="{StaticResource ChartPalette}" Grid.Row="1" LegendTitle="Legend" Margin="0,25,0,0" Visibility="{Binding ShowGraph, Converter={StaticResource BoolToVisConv}}">
グラフ テンプレートの XAML
<ana:DynamicSeriesChart.Template>
<ControlTemplate TargetType="charting:Chart">
<Border Background="{DynamicResource ContainerElementContentPanelBgBrush}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<datavis:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" />
<chartingprimitives:EdgePanel x:Name="ChartArea" Grid.Row="1" Margin="0,15,0,15" Style="{TemplateBinding ChartAreaStyle}">
<Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
<Border Canvas.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" />
</chartingprimitives:EdgePanel>
<datavis:Legend x:Name="Legend" Style="{TemplateBinding LegendStyle}" Grid.Row="2" HorizontalAlignment="Left">
<datavis:Legend.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</datavis:Legend.ItemsPanel>
</datavis:Legend>
</Grid>
</Border>
</ControlTemplate>
</ana:DynamicSeriesChart.Template>
パレットからのサンプル
<Style x:Key="ColumnSeries1Style" TargetType="Control">
<Setter Property="Background" Value="#FFFFA500" />
</Style>
<Style x:Key="ColumnSeries1Style2" TargetType="Shape">
<Setter Property="Fill" Value="#FFFFA500" />
<Setter Property="Stroke" Value="#FFFFA500" />
</Style>
...
...
<datavis:ResourceDictionaryCollection x:Key="ChartPalette">
<ResourceDictionary>
<Style x:Key="DataPointStyle" BasedOn="{StaticResource ColumnSeries1Style}" TargetType="Control" />
<Style x:Key="DataShapeStyle" BasedOn="{StaticResource ColumnSeries1Style2}" TargetType="Shape" />
</ResourceDictionary>
...
リロードは、新しい Params を設定する長いクエリである Refresh() を呼び出します。これは LoadData() に送られ、ApplyResults() に送られ、ChartSeries がクリアされてから新しい値が適用されます。
(私はコード ビハインドまたは cs を作成するのをためらっています。なぜなら、それは私のものではないからです (そして、参照と参照がどこにでもあるので、まだやや混乱しています)。これを解決しようとして新しい部品を発見します. 詳細や操作フローが必要な場合は、それらの部品を探し出すために最善を尽くします.
リフレッシュすると、グラフ (面、棒、縦棒、線のいずれか) がパレットの色を循環します。たとえば、現在赤/青/オレンジの 3 本のバーがあるとします。グラフを更新して新しいデータで更新すると、色が変わり、パレットの次の色に変わります。たとえば、紫/黄/緑です。また、データが更新されるたびに、パレット全体が循環し続けます (したがって、チャートとその凡例が変更されます)。これは、カスタム パレットがなくても発生します。
アップデート
問題を詳しく見てみると、「折れ線」グラフは他のグラフと同じ動作をしていません。したがって、この問題があるのは縦棒/横棒/面グラフのみです。