有直径的圆

Circles with a diameter

到目前为止,我有一个看起来像这样的 OxyPlot:

但我想创建一个中间有孔的圆圈,我可以给圆圈一个直径,这些圆圈应该有多大。

不要让图片刺激你,圆圈应该大小相同

最后应该是这样的。圆圈的孔在中间,有一定的直径。

XAML

<oxy:Plot x:Name="oxyPlot" Title="{Binding Title}" Height="279" Canvas.Left="259" Canvas.Top="29" Width="344" Background="#FFD1CFD0">
    <oxy:Plot.Axes>
        <oxy:LinearAxis Position="Bottom" MinimumPadding="0.1" MaximumPadding="0.1"/>
        <oxy:LinearAxis Position="Left" MinimumPadding="0.1" MaximumPadding="0.1"/>
    </oxy:Plot.Axes>
    <oxy:Plot.Series>
        <oxy:LineSeries x:Name="ls" ItemsSource="{Binding Points}" LineStyle="None"  MarkerType="Circle" MarkerSize="5" MarkerFill="Black"/>
    </oxy:Plot.Series>
</oxy:Plot>

您应该在 LineSeries 上结合使用这些属性:

MarkerStroke="Red" 
MarkerType="Circle" 
MarkerStrokeThickness="3" 
MarkerSize="5" 
MarkerFill="Transparent"

MarkerSize决定半径,MarkerStrokeThickness决定外线粗细。请注意,为了在中间得到一个空圆,MarkerStrokeThickness 应该小于 MarkerSizeMarkerFill 决定内圈的颜色,MarkerStroke 决定边框的颜色。

可以通过 MarkerType="Custom" 和设置 MarkerOutline 属性.

创建更复杂的形状

在代码中

        ls.MarkerType = MarkerType.Circle;
        ls.MarkerFill = System.Windows.Media.Colors.Transparent;
        ls.MarkerStroke = System.Windows.Media.Colors.Red;
        ls.MarkerSize = 40;
        ls.MarkerStrokeThickness = 3;