跳轉到主要內容

強制回應視窗

強制回應(Modal Window)視窗是容器類型的小部件,用於顯示視窗,並禁止對下層視圖和小部件的觸摸事件。 強制回應視窗由背景圖像邊框構成,邊框充當覆蓋下層視圖和小部件的陰影,其Alpha值可調整。 強制回應視窗將填充整個螢幕,並應作為最後一個元素添加,以使其始終位於其他所有元素的頂部。

在模擬器中運行的強制回應視窗

小部件組

強制回應視窗位於TouchGFX Designer中的Containers小部件組中。

TouchGFX Designer中的強制回應視窗

屬性

TouchGFX Designer中強制回應視窗的屬性。

屬性組屬性說明
Name小部件的名稱Name是TouchGFX Designer和程式碼中使用的唯一識別碼
Modal Image LocationXY指定圖像左上角在強制回應視窗中的位置。

WH 指定容器在強制回應視窗中的寬度和高度。
容器在強制回應視窗中的大小是從關聯圖像的大小獲取的,其大小無法更改(除非更改圖像)。

鎖定 指定小部件是否應鎖定為其當前的X、Y、W和H。
如果鎖定小部件,還會禁止通過螢幕與小部件進行交互。

可見指定小部件的可見性。
如果將小部件標記為不可見,還會禁止通過螢幕與小部件進行交互。
Appearance視窗圖像 指定強制回應視窗應使用的圖像。

陰影顏色 指定疊加陰影的顏色。

Shade Alpha 指定疊加陰影的透明度。
小部件Alpha值的範圍是0到255。 0為完全透明,255為實心。

交互

下面的部分介紹了強制回應視窗支援的操作和觸發條件。

操作

標準小部件操作說明
Hide widget隱藏小部件(將可見性設置為false)。
Show widget使隱藏的小部件可見(將可見性設置為true)。

觸發條件

強制回應視窗不會產生任何觸發條件。

性能

強制回應視窗屬於容器類型,由邊框容器圖像組成。 強制回應視窗預設情況下不會出現在繪圖鏈中。 因此,性能主要取決於子部件的繪圖性能。

更多關於繪圖性能的常規資訊,請閱讀常規UI元件性能部分。

範例

生成程式碼

在生成的視圖基類的程式碼中,可以查看TouchGFX Designer是如何創建強制回應視窗的。

mainViewBase.cpp
#include <gui_generated/main_screen/mainViewBase.hpp>
#include "BitmapDatabase.hpp"
#include <texts/TextKeysAndLanguages.hpp>
#include <touchgfx/Color.hpp>

mainViewBase::mainViewBase() :
buttonCallback(this, &mainViewBase::buttonCallbackHandler)
{
modalWindow.setBackground(touchgfx::BitmapId(BITMAP_BLUE_BACKGROUNDS_MAIN_BG_320X240PX_ID), 80, 16);
modalWindow.setShadeColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
modalWindow.setShadeAlpha(150);
modalWindow.hide();

add(modalWindow);
}

void mainViewBase::setupScreen()
{

}
Tip
您可以在用戶程式碼中使用ModalWindow類中的這些函數和其他可用函數。 如果修改了小部件的外觀,記得呼叫 modalWindow.invalidate() 以強制重繪。

TouchGFX Designer範例

如需進一步瞭解強制回應視窗,請嘗試在TouchGFX Designer中使用下列UI範本的其中一個以創建新應用:

TouchGFX Designer中的強制回應視窗UI範本

API參考