في DeepEarth، يتم استخدام سلوك السحب والإفلات للخريطة لتوحيد نموذج تشغيل المستخدم مثل التحديد والحركة والرسم عند تشغيل الخريطة. يقوم DeepEarth بتغليفه داخل عنصر تحكم الخريطة (Map) ببنية التعداد، ويكون كود المصدر كما يلي:
شفرة
/// <الملخص>
/// سلوك السحب والإفلات على الخريطة
/// </الملخص>
التعداد العام DragBehavior
{
/// <الملخص>
/// اسحب الماوس إلى نقطة الرمز على شكل يد على الخريطة، سيتم عرض الخريطة أثناء سحب الماوس ووضعه في الموضع الذي يتم فيه تحرير الماوس.
/// </الملخص>
مِقلاة،
/// <الملخص>
/// ارسم رسمًا مستطيلًا على الخريطة عن طريق تحديده، وعندما يحرر الماوس التحديد، سيتم عرض الخريطة بمستوى مكبر.
/// </الملخص>
يختار،
/// <الملخص>
/// ارسم الرسومات على الخريطة.
/// </الملخص>
يرسم
}
يتم تعريف سلوك السحب والإفلات في DeepEarth على أنه سلوك السحب والإفلات بالماوس بشكل افتراضي. عندما يقوم المستخدم بتشغيل الخريطة على الخريطة المعروضة، يتحول الماوس إلى نقطة رمز على شكل يد ويسحب الخريطة على الخريطة. عندما يحرر الماوس السحب، تحدد الخريطة موقع الخريطة حيث يتم تحرير الماوس للسحب. يتم تعريف سلوك السحب والإفلات الافتراضي في التعليمات البرمجية المصدر على النحو التالي:
// خريطة سلوك السحب والإفلات
Private DragBehavior _DragMode = DragBehavior.Pan;
تم وصف سلوك السحب والإفلات للخريطة بإيجاز أعلاه، فلنلقي نظرة على كيفية استخدام سلوك السحب والإفلات للخريطة أثناء التطوير. يمكننا وضع زر على الواجهة كتجربة، والتبديل سلوك السحب والإفلات للخريطة عن طريق النقر فوق الزر تحرير وظيفة السلوك:
شفرة
/// <الملخص>
/// تغيير سلوك السحب والإفلات للخريطة
/// </الملخص>
/// <param name="sender"></param>
/// <param name="e"></param>
الفراغ الخاص btnDragBehavior_Click(مرسل الكائن، RoutedEventArgs e)
{
// تحديد وضع السحب والإفلات للخريطة الحالية - للتبديل بين الوضعين
التبديل (mapInstance.DragMode)
{
حالة Map.DragBehavior.Pan:
MapInstance.DragMode = Map.DragBehavior.Select;
ToolTipService.SetToolTip(btnDragBehavior, "التبديل إلى وضع تكبير التحديد");
btnDragBehavior.Content = "اختر";
استراحة؛
خريطة الحالة.DragBehavior.Select:
MapInstance.DragMode = Map.DragBehavior.Pan;
ToolTipService.SetToolTip(btnDragBehavior, "التبديل إلى وضع السحب والإفلات");
btnDragBehavior.Content = "السحب والإسقاط";
استراحة؛
}
}