2010-03-09 83 views
3

我有一个网格,其中的一列中包含图像。图像本身没有任何宽度或高度集,但其大小通过ColumnDefinition集正确控制。从这我会假设图像控制器实际上有一个宽度和高度设置,但是当我尝试绑定另一个元素的宽度和高度它不起作用。调试时发现Image.Height和Image.Width的值是NaN。为什么?实际显示时,我的控件大小如何可以为NaN?

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="350"></ColumnDefinition> 
     <ColumnDefinition Width="*"></ColumnDefinition> 
     <ColumnDefinition Width="10"></ColumnDefinition> 
     <ColumnDefinition Width="*"></ColumnDefinition> 
    </Grid.ColumnDefinitions> 

    <Grid Grid.Column="0"> 
     <Image x:Name="_image" Source="image.jpg"></Image> 
    </Grid> 

</Grid> 

回答

3

您正在寻找.RenderSize或.ActualSize

+2

或'ActualSize'? – 2010-03-09 11:55:33

+0

Thx!两者都给出相同的值,但ActualSize更容易使用,因为我可以直接获取ActualWidth和ActualHeight。 – stiank81 2010-03-09 12:00:07

1

调试什么时候?

NAN在布局阶段从控件用于表示“您想要的任何尺寸”或“未定义”。因此,在特定阶段的任何断点可能会显示不同大小的NAN。

你的控件没有定义特定的尺寸,所以自然是“NAN”。最终的大小存储在其他属性;)

+1

我发现它有助于为** **所需的宽度和高度 – 2010-03-09 12:03:57

+0

说得好解释WPF的宽度和高度;)下次会记住这一点。 – TomTom 2010-03-09 12:12:12

相关问题