【问题标题】:How To Handle Chart Series With Incompatible Ranges?如何处理范围不兼容的图表系列?
【发布时间】:2016-04-14 07:59:54
【问题描述】:

我做了两个图表。在他们两个是一个单一的折线图。它们在 x 轴和 y 轴上具有不同的值。但我想同时展示它们。所以我必须使第二个图表的背景和轴透明。只有线条应该保持可见,以便我可以在第一个图表中看到它。对于第二个图表,轴不再正确并不重要。

图 1:

图 2:

当两个图表都可见时,它应该是这样的:

这是我已经编码的 XAML。如何将背景和轴更改为透明或隐藏?:

<chartingToolkit:Chart Background="White" BorderThickness="0">
            <chartingToolkit:LineSeries  DependentValuePath="Value" IndependentValuePath="Key" ItemsSource="{Binding DemandPrice}" IsSelectionEnabled="True" Visibility="{Binding TodayVisible}">
                <chartingToolkit:LineSeries.Style>
                    <Style TargetType="chartingToolkit:LineSeries" BasedOn="{StaticResource {x:Type chartingToolkit:LineSeries}}">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="chartingToolkit:LineSeries">
                                    <Canvas x:Name="PlotArea">
                                        <Polyline x:Name="polyline"
                                                          Points="{TemplateBinding Points}"                                           
                                                          Style="{TemplateBinding PolylineStyle}"
                                                          StrokeThickness="4" >
                                            <Polyline.Stroke>
                                                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                                    <GradientStop Color="Gray" Offset="0"/>
                                                    <GradientStop Color="Gray" Offset="1"/>
                                                </LinearGradientBrush>
                                            </Polyline.Stroke>
                                        </Polyline>
                                    </Canvas>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </chartingToolkit:LineSeries.Style>
                <chartingToolkit:LineSeries.DataPointStyle>
                    <Style TargetType="chartingToolkit:LineDataPoint">
                        <Setter Property="Background" Value="Transparent" />
                    </Style>
                </chartingToolkit:LineSeries.DataPointStyle>
            </chartingToolkit:LineSeries>
        </chartingToolkit:Chart>

        <chartingToolkit:Chart Background="Transparent" BorderThickness="0">
            <!-- EEX Price-->
            <chartingToolkit:LineSeries DependentValuePath="Value" IndependentValuePath="Key" ItemsSource="{Binding EEXPrice}" IsSelectionEnabled="True" Background="{StaticResource AccentColorBrush}" Visibility="{Binding EEXVisible}">
                <chartingToolkit:LineSeries.Style>
                    <Style TargetType="chartingToolkit:LineSeries" BasedOn="{StaticResource {x:Type chartingToolkit:LineSeries}}">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="chartingToolkit:LineSeries">
                                    <Canvas x:Name="PlotArea">
                                        <Border
                                                                Background="Transparent"
                                                                BorderBrush="Transparent"
                                                                BorderThickness="0">
                                        </Border>
                                        <Polyline x:Name="polyline"
                                                          Points="{TemplateBinding Points}"                                           
                                                          Style="{TemplateBinding PolylineStyle}"
                                                          StrokeThickness="4">
                                            <Polyline.Stroke>
                                                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                                    <GradientStop Color="Blue" Offset="0"/>
                                                    <GradientStop Color="Blue" Offset="1"/>
                                                </LinearGradientBrush>
                                            </Polyline.Stroke>
                                        </Polyline>
                                    </Canvas>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </chartingToolkit:LineSeries.Style>
                <chartingToolkit:LineSeries.DataPointStyle>
                    <Style TargetType="chartingToolkit:LineDataPoint">
                        <Setter Property="Background" Value="Transparent" />
                    </Style>
                </chartingToolkit:LineSeries.DataPointStyle>
            </chartingToolkit:LineSeries>
            <chartingToolkit:Chart.LegendStyle>
                <Style TargetType="datavis:Legend">
                    <Setter Property="Width" Value="0" />
                </Style>
            </chartingToolkit:Chart.LegendStyle>
        </chartingToolkit:Chart>  

【问题讨论】:

  • 因为它们的轴上有不同的值范围。图表 1 的 y 值最高为 14.000,但图表 2 的 y 值仅介于 0 和 35 之间。所以图表 2 将显示为图表底部的一条线,如果我将其显示在同一张图表,

标签: c# wpf xaml charts wpftoolkit


【解决方案1】:

您可以尝试 Color="#66808080",而不是设置 Color="Gray",即 #FF808080。这样你就可以设置颜色的不透明度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2014-05-17
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多