gpt4 book ai didi

C# WPF - GridLength GridUnitType.Auto

转载 作者:太空狗 更新时间:2023-10-29 17:39:13 24 4
gpt4 key购买 nike

谁能解释一下使用之间的区别:

 GridLength length = new GridLength(0, GridUnitType.Auto) 

 GridLength length = new GridLength(1, GridUnitType.Auto)

我对此的有限了解使我相信这些都是相同的解决方案,因为 auto 就像它所说的那样......“自动”,因此使 double 值变得多余。

我见过的大多数示例都显示 GridUnitType.Auto 前面有 1 而不是 0,但在我看来这两个选项都一样吗?

是这种情况吗,或者任何人都可以阐明这些是否/如何不同

最佳答案

我认为你的理解是正确的,当值GridUnitType.Auto使用时,传递给构造函数的第一个值是多余的,因为大小将由内容对象决定。

它在 GridLength 的上下文中有点意义结构构造函数以保留此参数(即使它未在此实例中使用),因为它允许第二个参数类型包含描述 GridUnitType 的所有可用状态的值.

来自documentation :

枚举类型GridUnitType可以包含以下值:

Auto   - The size is determined by the size properties of the content object. 
Pixel - The value is expressed as a pixel.
Star - The value is expressed as a weighted proportion of available space.

实际上,只有当第二个参数设置为 GridUnitType.Pixel 时,第一个参数才相关。或 GridUnitType.Star .

它不会以其他方式巧妙地工作,例如如果您尝试让构造函数接受 1 个参数作为 GridUnitType , 如果您使用 Pixel 则只需要第二个参数或 Star .

这样一来,您将受益于拥有一个接受 double 而不指定附加类型的 1 参数构造函数。尽管在使用 Auto 时它确实有可能看起来很奇怪的两个参数构造函数的成本(如您的示例所示)。

关于C# WPF - GridLength GridUnitType.Auto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17974536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com