تغییر پویای محتوای عنصر

درحالی‌که 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>
        <!-- Further expressions -->
    </Expressions>
    <Compare expression="is_early_morning">
        <!-- Early morning content here -->
    </Compare>
    <Compare expression="is_morning">
        <!-- Morning content here -->
    </Compare>
    <!-- Further Compare elements -->
    <!-- The "else" case -->
    <Default>
        <!-- content -->
    </Default>
</Condition>

چند نکته درباره شرایط:

  1. از اولین عنصر Compare که در آن expression برابر با true است استفاده می‌شود و بقیه نادیده گرفته می‌شوند.
  2. به‌دلیل قالب XML، اغلب آسان‌ترین راه این است که تعریف عبارت را در عنصر CDATA بپیچید، همان‌طور که در اینجا نشان داده شده است، زیرا این کار نیاز به استفاده از عناصر نهاد مانند &gt; و &amp; برای فرار از XML را ازبین می‌برد.
  3. ‫Condition ساختار می‌تواند لانه‌گیری شود.