0

私の WPF ウィンドウには、ウィンドウ幅全体に広がる Grid が含まれており、途中でいくつかのコントロールをレイアウトします。これらのコントロールの中に、ある種の流れを視覚化する、一端に矢印が付いたいくつかの線が表示されるはずです。線は複数のグリッド列または行にまたがり、他のコントロールから遠ざけるために各辺にマージンがあります。複数のラインには、それらが接触しなければならない特定の接続ポイントがあります。今のところ、必要なのは水平線と垂直線だけです。

Line コントロールを試してみましたが、両端の X 座標と Y 座標がピクセル単位で必要なようです。ユーザーがウィンドウ サイズを変更すると、線が伸びる可能性があるため、これは簡単ではありません。

次はパス コントロールですが、そこに矢印の端を追加する方法がわかりません。Path データは Stretch="Fill" の "M0,0 L1,0" だったので、パスに矢印を描画すると、同様に伸びてしまいます。

線を引き延ばす代わりに、矢印を引き延ばさない方法はありますか?

4

1 に答える 1

0

あなた自身のコントロールを転がしてください

public sealed class Arrow : FrameworkElement
{
    protected override void OnRender(DrawingContext drawingContext)
    {
       var width = ActualWidth;
       var height = ActualHeight;
       drawingContext.Draw...; // Draw you arrow line here
       drawingContext.Draw...; // Draw you arrow head here 
    }
}

もちろん、矢印の描画方法を制御するために、あらゆる種類の依存関係プロパティを追加できます。

于 2012-11-07T11:21:44.080 に答える