SizeBox是一個很有意思的控件,下邊通過創建一個自變化寬高的文本輸入框來舉例講述它的作用。當然自變化寬高的文本框可以用TextBox(Multi-line)即可實現(C++中爲UMultiLineEditableTextBox類型),這裏只是舉例說明而已。
1.文字爲EditTextBox(Multi-line),後邊黑色背景爲Image控件,把Image控件放進SizeBox控件中,勾選SizeBox的SizeToContent選項,選擇WidthOverride和HeightOverride選項。
2. 類似SizeBox,將EditTextBox(Multi-line)也勾選SizeToContent選項,關閉AutoWrapText(自動換行),設置WrapTextAt(在何處換行)爲你需要換行的最大長度,比如300。
3. 給EditTextBox(Multi-line)的OnTextChanged和OnTextCommitted綁定事件,在事件中獲取EidtTextBox的大小(GetDesiredSize),重寫SizeBox的寬高(SetWidthOverride和SetHeightOverride)。
附SizeBox說明:
/**
* A widget that allows you to specify the size it reports to have and desire. Not all widgets report a desired size
* that you actually desire. Wrapping them in a SizeBox lets you have the Size Box force them to be a particular size.
*
* * Single Child
* * Fixed Size
*/