18

WP7で円の扇形を作りたいです。楕円クラスでこれをやろうとしたところ、ゲージや円グラフなどを作成する多くの解決策が見つかりましたが、本質だけが必要です。誰でも助けてもらえますか?

目的は、円 (または楕円) の一部だけを表示することです。写真の黄色い部分のように:

ここに画像の説明を入力

ありがとう、ラシ

4

2 に答える 2

41

これは問題に対するかなり単純な解決策ですが、これは を使用せずEllipse、少し三角法が必要です。

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

DataプロパティはPath Markup Syntaxを使用します。

  • 先頭の「M」は、ペンに位置0,0 に移動するよう指示します。
  • 「L」は、現在の位置 (0, 0) から 0,-100 までの線を描画するようにペンに指示します
  • 「A」は、現在の位置から 70.7、-70.7 まで楕円弧を描くようにペンに指示します (「100,100」の部分は、楕円の水平方向と垂直方向の半径を決定し、「0 0 1」の部分RotationAngle、、、、(時計回りの場合は 1、反時計回りの場合は 0))。IsLargeArcSweepDirection
  • 「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をクリップとして使用して、表示する円のスライスを定義する必要があります。(リンクを参照)

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

または、 CombinedGeometryを使用してPathGeometryとを組み合わせEllipseGeometryてスライスを形成することもできます。(リンクは の良い例ですCombinedGeometry)

于 2011-07-19T13:39:26.973 に答える