繁体   English   中英

获取设置为“自动”的网格的实际宽度

[英]Get actual width of Grid that is set as Auto

我正在使用Windows 8版本预览和C#(VS 2012)开发Metro应用程序,是否有任何方法可以将Grid width设置为Auto简要 :我有一个StackPanel带有一个Grid ,其中Grid的行数为n ,行数为n列数(行和列动态生成)。 我需要知道在StackPanel Grid实际宽度,我试过了

 1)var Actualwidth = grid.ActualWidth;            
 2)var Minwidth = grid.MinWidth;
 3)var width = grid.Width;
 4)var Renderwidth = grid.RenderSize.Width;

结果如下

1 = 0.0
2 = 0.0
3 = NaN
4 = 0.0

有什么方法可以获取实际宽度,请帮帮我,谢谢

在测量并排列控件之后,才会设置ActualWidth 尝试处理OnLoaded事件并在那里获取宽度。 有关wpf的说明,请参见此处 (关于winrt的说明)。 对于Windows 8 API,请参见此处

出于ElementName绑定的目的,ActualWidth更改时不会发布更新(由于其异步和运行时计算性质)。 不要尝试将ActualWidth用作ElementName绑定的绑定源。 如果您有需要基于ActualWidth更新的方案,请使用SizeChanged处理程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM