0

描画アプリケーションを作成しようとしていますが、「選択モード」で奇妙な結果が得られます。長方形を描画して「選択」すると、RenderSize は適切な Size を返しますが、Line が選択されている場合、RenderSize は、Width が Line.X2 に設定され、Height が Line.Y2 に設定された Size を返します。例: 行は X1 = 50、Y1 = 50 で始まり、X2 = 130、Y2 = 90 で終わります。RenderSize は、幅 = 130、高さ = 90 のサイズを返します。私の選択には UIElement 型の要素が含まれているため、わかりません (本当に気にする必要はありません) 選択モードを可能な限り汎用的にするためにどの形状が選択されているか、ユーザーが選択した形状を移動している間に境界ボックスを描画したいと思います。

問題をグーグルで調べてみましたが、関連するものは何も見つからなかったので、私を助けてくれるかもしれません. Line がポイントを明示的に設定しているのに対し、Rectangle は Canvas によって設定された位置を持っているためですか?

4

1 に答える 1

3

130x90 を取得している理由は、あなたが引用した理由によるものです。WPF の Rectangle は位置がなく、単に高さ/幅であるため、2 つのサイズの値は等しくなります。

ただし、ポイントによって定義される Line は、必然的に原点からの必要なオフセットを定義するため、オフセットはバウンディング ボックスに含まれます。

また、 Line オブジェクトで Canvas.Top/Left プロパティを引き続き使用して、さらにオフセットすることもできます。次に例を示します。

  <Canvas>
    <Line X1="50" X2="130" Y1="50" Y2="90" StrokeThickness="1" Stroke="Blue" Canvas.Top="50" Canvas.Left="30"></Line>
  </Canvas>
于 2009-06-22T17:36:47.520 に答える