18

我想在 WP7 上画一个圆圈。我尝试使用 ellipse 类来做到这一点,我找到了很多解决方案,可以制作仪表或饼图或其他东西,但我只需要本质。有人可以帮忙吗?

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

在此处输入图像描述

谢谢,拉西

4

2 回答 2

41

这是一个相当简单的问题解决方案,虽然它不使用 anEllipse并且需要一点三角函数:

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

Data属性使用路径标记语法

  • 开头的“M”告诉笔移动到位置0,0。
  • “L”告诉笔从当前位置 (0, 0) 到 0,-100 画一条线
  • “A”告诉笔从当前位置到 70.7,-70.7 绘制一个椭圆A rc(“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)

于 2012-01-05T01:12:15.823 回答
1

你需要做这样的事情:

  • 为椭圆定义一个画布包装器
  • 定义画布(剪辑)的可见部分。对于这一部分,您需要使用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来组合 aPathGeometryEllipseGeometry形成切片。(链接提供了一个很好的例子CombinedGeometry

于 2011-07-19T13:39:26.973 回答