1

独自のグラフ コントロールを作成しようとしていますが、x ラインに問題があります。

新しいコントロールを作成し、空の WP7 プロジェクトに追加しました。コントロールには、400 に設定されたandというStackPanel名前の があります。CanvasHeightWidth

始めるために、私はいくつかのコードを書いて見てみました:

            double yStepping = Canvas.Height/5;
            double y = 0;

            // generate x lines
            for (int k = 0; k < 3; k++)
            {
                y += 10;

                Line l = new Line()
                {
                    Stroke = new SolidColorBrush(Colors.White),
                    StrokeThickness = 2,

                    X1 = 10,
                    Y1 = y,

                    X2 = 100,
                    Y2 = y
                };

                Canvas.Children.Add(l);
            }

これにより等間隔の線が作成されると思いますが、そうではありません。行ごとに間隔が大きくなります。何故ですか?

4

2 に答える 2

2

スタックパネルはラインをスタックします。ストロークの太さのため、各線の高さは少なくとも2つあります。さらに、各行のY値は、その高さに追加されます(より正確には、高さが導出される境界ボックスに追加されます)。

于 2012-06-08T22:02:23.557 に答える
0

Silverlight 用の Snoop for WPF 同等物 ( Silverlight Spyなど) を使用してビジュアル ツリーを調べ、どの要素が内部コントロールに対して幅と高さを増加させているか、または予期しないバインディングのためにそのコントロールの設定が間違っているかどうかを確認できます。

于 2012-06-08T22:13:48.463 に答える