Blazor - تخصيص Layout لأجزاء مختلفة من التطبيق

🔹 Blazor - تخصيص Layout لأجزاء مختلفة من التطبيق

أحيانًا نحتاج أكثر من Layout في نفس تطبيق Blazor: واحد للزوار، وآخر للإدارة، وربما ثالث للهواتف المحمولة. في هذا الدرس، ستتعلم كيف تنشئ أكثر من Layout وتربط كل واحد بصفحات مختلفة حسب الحاجة.

---

🎯 متى نستخدم أكثر من Layout؟

  • صفحات الإدارة تختلف عن صفحات المستخدم العادي.
  • تريد صفحات بدون قائمة جانبية.
  • تحتاج Layout خاص لطباعة أو شاشة تسجيل الدخول.
---

🛠️ خطوات إنشاء أكثر من Layout

✅ 1. أنشئ Layout رئيسي:



<div class="p-4">
    <h2>🌐 الواجهة العامة</h2>
    @Body
</div>

✅ 2. أنشئ Layout إداري:



<div class="admin-container">
    <nav class="bg-dark text-white p-2">⚙️ لوحة التحكم</nav>
    <section class="p-4">
        @Body
    </section>
</div>
---

📥 استخدام Layout مخصص في صفحة معينة

في أعلى الصفحة، استخدم توجيه @layout لتحديد Layout:


@page "/admin-dashboard"
@layout AdminLayout

<h3>📊 لوحة تحكم المشرف</h3>
<p>مرحبًا بك في منطقة الإدارة.</p>
---

⚙️ تخصيص التخطيط تلقائيًا عبر RouteView

يمكنك إنشاء مكون RouteView مخصص لتحديد الـ Layout بناءً على الشرط:


@inherits RouteView

@{
    var layout = RouteData.PageType.Name.Contains("Admin") 
        ? typeof(AdminLayout)
        : typeof(MainLayout);
}

<LayoutView Layout="@layout" RouteData="@RouteData" />
ثم استخدمه في App.razor:


    <Found Context="routeData">
        <CustomRouteView RouteData="@routeData" />
    </Found>
    <NotFound><h3>❌ الصفحة غير موجودة</h3></NotFound>

---

💡 ملاحظات هامة

  • كل Layout يجب أن يحتوي على @Body لعرض محتوى الصفحات.
  • يمكنك تنسيق كل Layout حسب الغرض منه (ألوان، قوائم، إعدادات...).
  • إنشاء Layout متعدد يحسّن تجربة المستخدم حسب الدور أو القسم.
---

✅ خلاصة الدرس

في Blazor يمكنك إنشاء أكثر من Layout وربط كل واحد بمجموعة من الصفحات حسب نوعها. هذه الطريقة تُنظم التطبيق وتجعله أكثر احترافية ومرونة.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework