如何用椭圆类绘制圆扇形?

问题描述 投票:16回答:2

我想在WP7上圈出一个圈。我尝试使用椭圆类来做到这一点,并且发现了很多解决方案,可以制作仪表图或饼图之类的东西,但我只需要本质。有人可以帮忙吗?

目的是仅显示圆形(或椭圆形)的一部分。就像图片中的黄色区域:

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9VWkVWMS5qcGcifQ==” alt =“在此处输入图像描述”>

谢谢,Laci

wpf windows-phone-7 canvas ellipse sector
2个回答
38
投票

这是一个非常简单的解决方案,尽管它不使用Ellipse并且需要一些三角函数:

<Path Fill="Black"
      Data="M0,0 L0,-100 A100,100 0 0 1 70.7,-70.7 z" />

Data属性使用Path Markup Syntax

  • 开头的“ M”告诉笔<< M >>转到位置0,0。“ L”告诉笔从当前位置(0,0)到0,-100绘制
  • L
  • ine。“ A”告诉笔从当前位置绘制一个椭圆
  • A
  • rc至70.7,-70.7(“ 100,100”部分确定椭圆的水平和垂直半径,“ 0 0 1”部分用于RotationAngleIsLargeArcSweepDirection(顺时针为1,逆时针为0)。
    “ z告诉笔关闭或完成形状(这将导致从70.7,-70.7绘制直线回到0,0)。
  • 70.7是从哪里来的?好吧,这个特定的弧从半径为100的圆上扫出45度角,因此坐标[70.7,-70.7]由100 * sin(45)100 * cos(45)确定。

您需要执行以下操作:

    为椭圆定义画布包装
  • 定义画布(剪辑)的可见部分。对于此部分,您需要使用PathGeometry作为Clip来定义要显示的圆的切片。 (请参阅链接)

    <Canvas> <Canvas.Clip> <PathGeometry> // define your path here (see link above) </PathGeometry> <Ellipse Background="Yellow" Width="200" Height="200" /> </Canvas.Clip> </Canvas>

  • 或者,您可以使用CombinedGeometry组合PathGeometryEllipseGeometry形成切片。 (链接提供了CombinedGeometry的一个很好的例子)

    1
    投票
    您需要执行以下操作:
    © www.soinside.com 2019 - 2024. All rights reserved.