تغيير محتوى العنصر ديناميكيًا

على الرغم من أنّ Transform يتيح لك تغيير مظهر العناصر أو مجموعات العناصر، قد تكون هناك حالات تريد فيها التبديل بين قائمة السلوكيات استنادًا إلى بعض الشروط. يشبه ذلك عبارة switch أو عبارة if…else بلغات أخرى.

على سبيل المثال، يمكنك عرض خلفية مختلفة للصباح الباكر، والصباح والغداء وبعد الظهر والمساء والليل.

تسمح لك عبارات Condition في تنسيق خلفية شاشة الساعة بتضمين أجزاء مختلفة من مشهد خلفية شاشة الساعة استنادًا إلى تقييم التعبيرات، على سبيل المثال:

<Condition>
    <Expressions>
        <Expression name="is_early_morning">
            <![CDATA[[HOUR_0_23] >= 6 && [HOUR_0_23] < 8]]
        </Expression>
        <Expression name="is_morning">
            <![CDATA[[HOUR_0_23] < 12]]
        </Expression>
        ...
    </Expressions>
    <Compare expression="is_early_morning">
        <!-- Early morning content here -->
        <Group ... />
    </Compare>
    <Compare expression="is_morning">
        <!-- Morning content here -->
        <Group ... />
    </Compare>
    ...
    <!-- The "else" case -->
    <Default>
        <!-- content -->
    </Default>
</Condition>

في ما يلي بعض الملاحظات حول الشروط:

  1. يتم استخدام أول عنصر Compare حيث يكون expression هو true، ويتم تجاهل العناصر الأخرى.
  2. بسبب تنسيق XML، قد يكون من الأسهل غالبًا تضمين تعريف expression في عنصر CDATA كما هو موضّح هنا، لأنّ ذلك يتجنّب الحاجة إلى استخدام علامات XML الترميزية باستخدام عناصر العناصر، مثل &gt; و&amp;.
  3. يمكن تداخل بنية Condition.