Expression Blend中的“星形”测量是什么?

时间:2012-10-02 03:04:30

标签: windows-8 microsoft-metro visual-studio-2012 expression-blend

我目前正在开发Windows 8 Metro / Modern UI应用程序。现在,我正在使用Expression Blend for Visual Studio中的界面。

我的问题是:在调整网格列等UI元素的大小时,我可以使用像素,自动或星形。在这种情况下,什么是明星?谷歌搜索没有任何结果,我在Windiws 8开发者文档中找不到任何内容。

谢谢。

2 个答案:

答案 0 :(得分:3)

在网格中,*表示它将与其他*列(或行)平等地共享可用空间。有一些很好的WPF示例说明了它的工作原理here

来自文档here

  

starSizing

     
    

一种约定,您可以通过该约定调整行或列的大小     网格中剩余的可用空间。星级尺寸总是包括     星号字符(),可选择在星号前面加上     一个整数值,指定加权因子与其他因子     可能的星形大小(例如,3 )。有关的更多信息     星大小,见网格。

  

答案 1 :(得分:2)

在具有多列的网格中,* size列将剩余空间分开。例如,假设一个300px宽的网格,有3列(150px,120px和1 *)。

计算结果如下:

remainder = (300 - 150 - 120)

由于余数为30px,因此1 *列的宽度为30px

现在添加一些列并将宽度修改为(35px,85px,2 *,1 *,3 *)

重做计算:

remainder = (300 - 35 - 85)

在这种情况下,余数为180px,因此每个*列根据其加权数分割剩余的像素。

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

因此2 *列为60px,1 *列为30px,3 *列为90px

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

当然,相同的原则适用于行大小调整。

当网格调整大小时,*列会占用新的剩余大小。但是它们在其他*尺寸的物品之间保持相同的尺寸比例。在示例中,3 *列的宽度始终是1 *列的3倍。