c# - 网格线后面的 OxyPlot AreaSeries

标签 c# wpf xaml charts oxyplot

我使用 AreaSeries 在图表上显示彩色区域。

enter image description here

彩色区域呈现在网格线的顶部。有什么办法可以把网格线放到前面吗?

此图是在 WPF 项目的 XAML 中定义的。这是配置:

    <oxy:Plot Grid.Row="1"
          Margin="0"
          HorizontalAlignment="Stretch"
          VerticalAlignment="Stretch"
          PlotType="XY"
          TitleFontSize="11"
          IsLegendVisible="False"
          Title="{Binding Channel.Name}"
          InvalidateFlag="{Binding Refresh}">
      <oxy:Plot.Axes>
        <oxy:LinearAxis Key="yAxis"
                    IsZoomEnabled="False"
                    IsPanEnabled="False"
                    Position="Left"
                    MajorGridlineStyle="Dot"
                    MajorGridlineColor="LightGray"
                    Title="Speed [m/s]"
                    Maximum="{Binding SpeedXDistance_MaxY}"/>
        <oxy:LinearAxis Key="xAxis"
                    IsZoomEnabled="False"
                    IsPanEnabled="False"
                    Position="Bottom"
                    MajorGridlineStyle="Dot"
                    MajorGridlineColor="LightGray"
                    Title="Distance [m]"
                    Maximum="{Binding SpeedXDistance_MaxX}"/>
      </oxy:Plot.Axes>
      <oxy:Plot.Series>
        <oxy:LineSeries ItemsSource="{Binding SpeedXDistancePoints}"
                        DataFieldX="X"
                        DataFieldY="Y"
                        StrokeThickness="1"
                        MarkerSize="0"
                        LineStyle="Solid"
                        Color="Blue"
                        MarkerType="None"/>
        <oxy:AreaSeries ItemsSource="{Binding SpeedXDistanceUpperLimit}"
                        Fill="AliceBlue"
                        DataFieldX="X"
                        DataFieldY="Y"
                        StrokeThickness="1"
                        MarkerSize="0"
                        LineStyle="Solid"
                        Color="DarkGray"
                        MarkerType="None"/>
      </oxy:Plot.Series>
    </oxy:Plot>

如有任何帮助,我们将不胜感激。

最佳答案

改为创建透明颜色:

enter image description here

XAML:

<Window x:Class="WpfApp69.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:oxy="http://oxyplot.org/wpf"
        xmlns:local="clr-namespace:WpfApp69"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">

    <Window.Resources>
        <x:Array x:Key="array1" Type="{x:Type Point}">
            <Point X="0.2" Y="0" />
            <Point X="0.4" Y="15" />
            <Point X="0.6" Y="10" />
            <Point X="0.8" Y="20" />
            <Point X="1.0" Y="0" />
        </x:Array>

        <Color x:Key="MyColor" A="64" R="135" G="206" B="250"/>
    </Window.Resources>

    <Grid>
        <oxy:Plot Grid.Row="1"
          Margin="0"
          HorizontalAlignment="Stretch"
          VerticalAlignment="Stretch"
          PlotType="XY"
          TitleFontSize="11"
          IsLegendVisible="False"
          Title="Sample Plot">
            <oxy:Plot.Axes>
                <oxy:LinearAxis Key="yAxis"
                    IsZoomEnabled="False"
                    IsPanEnabled="False"
                    Position="Left"
                    MajorGridlineStyle="Dot"
                    MajorGridlineColor="Gray"
                    Title="Speed [m/s]"
                    Maximum="20"/>
                <oxy:LinearAxis Key="xAxis"
                    IsZoomEnabled="False"
                    IsPanEnabled="False"
                    Position="Bottom"
                    MajorGridlineStyle="Dot"
                    MajorGridlineColor="Gray"
                    Title="Distance [m]"
                    Maximum="1.0"/>
            </oxy:Plot.Axes>
            <oxy:Plot.Series>
                <oxy:AreaSeries ItemsSource="{StaticResource array1}"
                        Fill="{StaticResource MyColor}"
                        DataFieldX="X"
                        DataFieldY="Y"
                        StrokeThickness="1"
                        MarkerSize="0"
                        LineStyle="Solid"
                        Color="DarkGray"
                        MarkerType="None"/>
            </oxy:Plot.Series>
        </oxy:Plot>
    </Grid>
</Window>

关于c# - 网格线后面的 OxyPlot AreaSeries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46451014/

相关文章:

c# - 删除和恢复窗口边框

c# - 以正确的 WCF 格式返回 JSONP

wpf - 如何根据 WPF 中的条件显示不同的控件?

c# - 即使在绑定(bind)后 TextBlock 也不显示文本

c# - 使用唯一 ID 以编程方式创建按钮

c# - 野田时间入门

c# - 从分数中设置高分并在unity2D游戏中显示

c# - 流利的断言 : equivalence of sorted lists

c# - 在 WPF 应用程序 Mahapps 中找不到资源字典

c# - WPF 从 C# 代码设置文本框边框颜色