私はこの時点で私の目を掴む準備ができています。 .NET 3.5でWindowsフォームを使用した基本的なイメージエディタを構築しています。私が必要とするのは「選択ツール」です。このツールは、ボタンがクリックされたときに表示される必要があり、固定サイズになり、それは透明中心としたドラッグアンドdropable長方形である必要があります。
この目的は、ユーザーが画像の一部に矩形をドラッグアンドドロップし、その時点で矩形の内側にあるものをスナップショットするために別のボタンを押すことができるという点でほぼ同じです。 (注:私はラバーバンドの矩形を必要としません、固定サイズでなければならず、フォーム全体にドラッグ可能で透明でなければなりません)。
は、私はインターネットやあらゆる使用されているいずれも可能な解決策を探してこのサイトを精練数日を費やしてきました。コントロールをドラッグ可能にすることができましたが、これは透明性に問題があります。以下は、コントロールをドラッグ可能にするコードですが、これが正しいパスであるかどうかはわかりません。
class ControlMover
{
public enum Direction
{
Any,
Horizontal,
Vertical
}
public static void Init(Control control)
{
Init(control, Direction.Any);
}
public static void Init(Control control, Direction direction)
{
Init(control, control, direction);
}
public static void Init(Control control, Control container, Direction direction)
{
EditorForm.blnSelectArea = true;
bool Dragging = false;
Point DragStart = Point.Empty;
control.MouseDown += delegate(object sender, MouseEventArgs e)
{
Dragging = true;
DragStart = new Point(e.X, e.Y);
control.Capture = true;
};
control.MouseUp += delegate(object sender, MouseEventArgs e)
{
Dragging = false;
control.Capture = false;
};
control.MouseMove += delegate(object sender, MouseEventArgs e)
{
if (Dragging)
{
if (direction != Direction.Vertical)
container.Left = Math.Max(0, e.X + container.Left - DragStart.X);
if (direction != Direction.Horizontal)
container.Top = Math.Max(0, e.Y + container.Top - DragStart.Y);
control.Invalidate();
}
};
}
}
誰でも正しい方向に向けることができます。また、どこから見てもいいですか?
多くのおかげ
これは私が取り組もうとしていたものであり、これから提案しようとしています。あなたは私が言いたいことをしました。 +1 – Maheep
優秀、おそらく私の目は結局のところそのソケットに残ることができます!どうもありがとう! –
透明な背景画像を 'rect'しますか? –