نظرة عامة على طبولوجيا التنقل

توفر هذه النظرة العامة مقدمة حول طبولوجيا التنقل فيWPF. تتم مناقشة ثلاثة طبولوجيات شائعة للتنقل ، مع نماذج.

ملاحظةملاحظة

قبل قراءة هذا الموضوع, يجب أن تكون على دراية بمفهوم التنقل المهيكل في WPF باستخدام دوال الصفحات.للحصول على المزيد من المعلومات حول كلٍ من هذه المواضيع راجع نظرة عامة حول التنقل المهيكل.

يشمل هذا الموضوع على الأقسام التالية.

  • طبولوجيات التنقل

  • طبولوجيات التنقل المهيكلة

  • التنقل عبر طوبولوجيا خطية ثابتة

  • التنقل الحيوي عبر طوبولوجيا ذات تسلسل هرمي ثابتة

  • التنقل عبر طوبولوجيا منشئة بشكل حيوي

طبولوجيات التنقل

في WPF ، يتكون التنقل عادةً من صفحات ( Page) مع الارتباطات التشعبية ( Hyperlink) التي تنتقل إلى صفحات أخرى عند النقر فوقها. يتم تعريف الصفحات التي يتم الانتقال إليها بواسطة معرفات موارد منتظمة (URI) (راجع حزمة ال URIفى WPF). خذ بعين الاعتبار المثال التالي البسيط الذى يعرض الصفحات ، الارتباطات التشعبية و معرفات موارد منتظمة (URI):

<Page xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page1">
  <Hyperlink NavigateUri="Page2.xaml">Navigate to Page2</Hyperlink>
</Page>
<Page xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page2">
  <Hyperlink NavigateUri="Page1.xaml">Navigate to Page1</Hyperlink>
</Page>

هذه الصفحات مرتبة في طبولوجيا التنقل التى لها بنية تتحدد عن طريق كيف يمكنك التنقل بين الصفحات. تتناسب طبولوجيا التنقل المعينة هذه مع سيناريوهات بسيطة ، على الرغم من أن التنقل يمكن أن يتطلب طبولوجيا أكثر تعقيداً ، البعض منها يمكن فقط تعريفه عند تشغيل تطبيق ما.

يغطي هذا الموضوع ثلاثة طبواوجيات شائعة للتنقل: ثابت خطي و ثابت الهرمية و إنشاء ديناميكي . كل طبولوجيا للتنقل موضحة مع نموذج يحتوي على واجهة المستخدم مثل الذي يظهر في الشكل التالي:

صفحات مهام بها عناصر بيانات

طبولوجيات التنقل المهيكلة

هناك نوعان كبار من طبولوجيات التنقل:

  • ثابت: يتم تعريفها في وقت التحويل البرمجي و لا تتغير أثناء وقت التشغيل. تكون الطبولوجيا الثابتة مفيدة للتنقل خلال تسلسل ثابت من الصفحات بترتيب إما خطي أو هرمية.

  • طبولوجيا حيوية: يتم تعريفها أثناء وقت التشغيل استناداً إلى الإدخال الذي تم تجميعه من المستخدم أو التطبيق أو النظام. الطبولوجيا الحيوية مفيدة عندما يمكن الانتقال فى الصفحات في تسلسل مختلف.

على الرغم من أنه من الممكن إنشاء طبولوجيا التنقل باستخدام الصفحات ، يستخدم النموذج دوال الصفحة لأنها توفر الدعم الإضافي الذى يعمل على تبسيط الدعم لتمرير وإرجاع البيانات من خلال الصفحات الخاصة بالطبولوجيا.

التنقل عبر طوبولوجيا خطية ثابتة

الطبولوجيا الخطية الثابتة مماثلة لعامل بنية المعالج الذى له صفحة معالج واحدة أو أكثر التي يتم الانتقال عبرها في سلسلة ثابتة. يظهر الشكل التالي بنية عالية المستوى وانسياب المعالج مع طبولوجيا خطية ثابتة.

الرسم التخطيطي لمخطط التنقل

السلوك النموذجية للتنقل عبر طبولوجيا خطية ثابتة تتضمن التالي:

  • التنقل من صفحة الاستدعاء الى صفحة المشغل التى تقوم بتهيئة المعالج وتنقل الى أولى صفحات المعالج. صفحة المشغل ( واجهة المستخدم - أقل PageFunction<T>) غير مطلوبة ، لأن صفحة الاستدعاء يمكنها أن تستدعى صفحة المعالج الأولى مباشرة. استخدام صفحة المشغّل ، على الرغم من ذلك، يمكن أن يقوم بتبسيط تهيئة المعالج بشكل خاص إذا كانت التهيئة معقدة.

  • يمكن للمستخدمين الانتقال بين الصفحات باستخدام أزرار الخلف و الأمام (أو الارتباطات التشعبية).

  • يمكن للمستخدمين الانتقال بين الصفحات باستخدام دفتر اليومية.

  • يمكن للمستخدمين إلغاء المعالج من أية صفحة معالج عن طريق الضغط على زر الإلغاء.

  • يمكن للمستخدمين قبول المعالج على آخر الصفحة بالضغط على زر الإنهاء.

  • إذا تم إلغاء المعالج ، يقوم المعالج بإرجاع نتائج مناسبة و لا يُرجع أي بيانات.

  • إذا قبل مستخدم استخدام المعالج ، يقوم المعالج بإرجاع نتائج مناسبة والبيانات التى تم تجميعها.

  • عندما يتم اكتمال المعالج (مقبول أو ملغى) ، الصفحات التي يشتملها المعالج تتم إزالتها من دفتر اليومية. يحتفظ هذا بكل مثيل للمعالج معزول ، وبالتالي يتجنب أى شذوذ محتمل للبيانات أو الحالة.

التنقل الحيوي عبر طوبولوجيا ذات تسلسل هرمي ثابتة

في بعض التطبيقات ، تسمح الصفحات بالتنقل إلى اثنين أو أكثر من الصفحات الأخرى ، كما هو موضح في الشكل التالي.

صفحة يمكن نقلها إلى عدة صفحات

تُعرف هذه البنية على أنها طبولوجيا هرمية ثابتة ، و غالباً ما يتم تحديد التسلسل الذى يتم فيه قطع التسلسل الهرمي خلال وقت التشغيل بواسطة التطبيق أو المستخدم. خلال وقت التشغيل ، تقوم كل صفحة في التسلسل الهرمي التي تسمح بالتنقل إلى اثنين أو أكثر من الصفحات الأخرى بتجميع البيانات المطلوبة لتحديد الصفحة التي يجب الانتقال إليها. يوضح الرسم التالي أحد التسلسلات الممكنة للتنقل استناداً إلى الشكل السابق.

الرسم التخطيطي لطبولوجيا التنقل

بالرغم من أنه يتم تحديد التسلسل الذي يتم الانتقال بواسطته فى بنية هيكلية ثابتة خلال وقت التشغيل ، تجربة المستخدم هى نفس تجربة المستخدم فى حالة الطبولوجيا الخطية الثابتة:

  • التنقل من صفحة الاستدعاء الى صفحة المشغل التى تقوم بتهيئة المعالج وتنقل الى أولى صفحات المعالج. صفحة المشغل ( واجهة المستخدم - أقل PageFunction<T>) غير مطلوبة ، لأن صفحة الاستدعاء يمكنها أن تستدعى صفحة المعالج الأولى مباشرة. استخدام صفحة المشغّل ، على الرغم من ذلك، يمكن أن يقوم بتبسيط تهيئة المعالج بشكل خاص إذا كانت التهيئة معقدة.

  • يمكن للمستخدمين الانتقال بين الصفحات باستخدام أزرار الخلف و الأمام (أو الارتباطات التشعبية).

  • يمكن للمستخدمين الانتقال بين الصفحات باستخدام دفتر اليومية.

  • يمكن للمستخدمين تغيير تسلسل التنقل إذا كانوا يتنقلوا في دفتر اليومية مرة أخرى.

  • يمكن للمستخدمين إلغاء المعالج من أية صفحة معالج عن طريق الضغط على زر الإلغاء.

  • يمكن للمستخدمين قبول المعالج على آخر الصفحة بالضغط على زر الإنهاء.

  • إذا تم إلغاء المعالج ، يقوم المعالج بإرجاع نتائج مناسبة و لا يُرجع أي بيانات.

  • إذا قبل مستخدم استخدام المعالج ، يقوم المعالج بإرجاع نتائج مناسبة والبيانات التى تم تجميعها.

  • عندما يتم اكتمال المعالج (مقبول أو ملغى) ، الصفحات التي يشتملها المعالج تتم إزالتها من دفتر اليومية. يحتفظ هذا بكل مثيل للمعالج معزول ، وبالتالي يتجنب أى شذوذ محتمل للبيانات أو الحالة.

التنقل عبر طوبولوجيا منشئة بشكل حيوي

في بعض التطبيقات يمكن فقط تحديد التسلسل الذى بواسطته يتم التنقل عبر صفحتين أو اكثر خلال وقت التشغيل ، اما عن طريق المستخدم أو التطبيق أو بيانات خارجية. يوضح الرسم التالي مجموعة من الصفحات بتسلسل تنقل غير محدد.

الرسم التخطيطي لطبولوجيا التنقل

يوضح الرسم التالى تسلسل تنقل تم اختياره بواسطة المستخدم في وقت التشغيل.

الرسم التخطيطي للتنقل

يُعرف تسلسل التنقل كطبولوجيا تم إنشاؤها بشكل حيوي. بالنسبة للمستخدم ، مثل طبولوجيات التنقل الأخرى ، تجربة المستخدم هى نفسها كما فى الطبولوجيات السابقة:

  • التنقل من صفحة الاستدعاء الى صفحة المشغل التى تقوم بتهيئة المعالج وتنقل الى أولى صفحات المعالج. صفحة المشغل ( واجهة المستخدم - أقل PageFunction<T>) غير مطلوبة ، لأن صفحة الاستدعاء يمكنها أن تستدعى صفحة المعالج الأولى مباشرة. استخدام صفحة المشغّل ، على الرغم من ذلك، يمكن أن يقوم بتبسيط تهيئة المعالج بشكل خاص إذا كانت التهيئة معقدة.

  • يمكن للمستخدمين الانتقال بين الصفحات باستخدام أزرار الخلف و الأمام (أو الارتباطات التشعبية).

  • يمكن للمستخدمين الانتقال بين الصفحات باستخدام دفتر اليومية.

  • يمكن للمستخدمين إلغاء المعالج من أية صفحة معالج عن طريق الضغط على زر الإلغاء.

  • يمكن للمستخدمين قبول المعالج على آخر الصفحة بالضغط على زر الإنهاء.

  • إذا تم إلغاء المعالج ، يقوم المعالج بإرجاع نتائج مناسبة و لا يُرجع أي بيانات.

  • إذا قبل مستخدم استخدام المعالج ، يقوم المعالج بإرجاع نتائج مناسبة والبيانات التى تم تجميعها.

  • عندما يتم اكتمال المعالج (مقبول أو ملغى) ، الصفحات التي يشتملها المعالج تتم إزالتها من دفتر اليومية. يحتفظ هذا بكل مثيل للمعالج معزول ، وبالتالي يتجنب أى شذوذ محتمل للبيانات أو الحالة.

راجع أيضًا:

المرجع

Page

PageFunction<T>

NavigationService

المبادئ

نظرة عامة حول التنقل المهيكل