3
  1. Canvas Child を持つ Viewbox があります。
  2. Viewbox to Fill の Stretch プロパティがあり、
  3. Viewbox の幅と高さを変更しました。
  4. 私が試したViewboxの親に関して、キャンバス内の子の位置を取得する必要があります:

    Point p = viewboxInstance.TranslatePoint(new Point(Canvas.GetLeft(child), Canvas.GetTop(child)), viewboxInstanceParent);

座標を間違える!解決策または回避策はありますか?

ありがとう

4

1 に答える 1

1

は、左と上の値ViewBoxを含む、その子のプロパティを変更しません。Canvas添付プロパティの値だけでなく、子の実際の座標を使用する必要があります。

TranslatePoint.である限り、子を直接呼び出すことができますUIElement。子の左上のポイントを参照するには、デフォルトである (0, 0) を使用できます。Pointこれnew Point()で十分です。

        Point p = child.TranslatePoint(new Point(), viewboxInstanceParent);

幸運を、

編集: このコードの動作中のビデオは次のとおりです: ViewboxChildPosition

于 2010-03-23T17:53:49.717 に答える