ユーザーがテキストブロックを長方形にドラッグ/ドロップし、その特定のテキストブロックの内容を長方形にドロップしたときに保存するこのプログラムを作成しています。
ドラッグ/ドロップの方法はわかりましたが、長方形にテキストブロックが含まれているかどうかを確認する方法がわかりません。
これまでのコードは次のとおりです。
bool captured = false;
double x_shape, x_canvas, y_shape, y_canvas;
UIElement source = null;
private void shape_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
source = (UIElement)sender;
Mouse.Capture(source);
captured = true;
x_shape = Canvas.GetLeft(source);
x_canvas = e.GetPosition(LayoutRoot).X;
y_shape = Canvas.GetTop(source);
y_canvas = e.GetPosition(LayoutRoot).Y;
}
private void shape_MouseMove(object sender, MouseEventArgs e)
{
if (captured)
{
double x = e.GetPosition(LayoutRoot).X;
double y = e.GetPosition(LayoutRoot).Y;
x_shape += x - x_canvas;
Canvas.SetLeft(source, x_shape);
x_canvas = x;
y_shape += y - y_canvas;
Canvas.SetTop(source, y_shape);
y_canvas = y;
}
}
private void shape_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
Mouse.Capture(null);
captured = false;
}
private void rectangle1_MouseEnter(object sender, MouseEventArgs e)
{
if (Mouse.Capture(null))
{
textBox1.Text = "test";
}
}
ちなみに、明確にするために、「Shape」イベントはテキストブロックに適用されます。ショートカットを見つけて、rectangle1_MouseEnter イベントを使用して、マウスがクリックされていない場合は値を保存しようとしました (値を保存するためのコードは含まれていません)。ただし、問題は、 textBox1.Text="test" が登録されていないため、このアイデアが機能しないことです。登録されていない理由がわかりません。