4

我目前正在使用Windows 8 Metro/Modern UI應用程序。現在,我正在爲Visual Studio的Expression Blend中的接口工作。Expression Blend中的「星號」測量是什麼?

我的問題是這樣的:當施膠UI元素,如格列,我可以使用像素,支持自動,或星星。在這方面什麼是明星?谷歌搜索什麼都沒有,我還沒有發現Windiws 8開發者文檔中的任何內容。

謝謝。

+2

這意味着'使用任何剩餘的' –

回答

3

在網格中,*表示它將與其他*列(或行)平均共享可用空間。有一些很好的WPF示例說明了這是如何工作的here

從文檔here

starSizing

的公約,通過它可以大小的行或列採取 在網格中剩餘的可用空間。星號的大小總是包含星號()的 ,並且可選地在星號前加 整數值,該整數值指定加權因子與其他 可能的星號(例如,3)。有關 明星大小的更多信息,請參閱網格。

2

在具有多列的網格中,*大小列將剩餘空間分開。例如,假設一個300px寬的3格網格(150px,120px和1 *)。

的計算公式是:

remainder = (300 - 150 - 120) 

由於餘數是30像素的1×列是30像素寬

現在添加一些列和修改的寬度至(35px,85px,2 *,1 * ,3 *)

重做計算:

remainder = (300 - 35 - 85) 

在這種情況下,其餘是180px,因此每個*列根據其權重數分割剩餘的像素。

factor = (180/ (2 + 1 + 3)) 
factor = 30px 

因此,2 *列是60像素,則1 *柱是30像素和3×列是90像素

300 == 35 + 85 + 60 + 30 + 90 

。當然,相同的原理適用於行上漿。

當網格調整大小時,*列將新的餘數大小分配。但他們保持其他*尺寸項目的相同尺寸比例。在這個例子中,3 *列將總是3倍於1 *列的寬度。