【问题标题】:How can my controls size be NaN when it is actually shown?实际显示时,我的控件大小如何为 NaN?
【发布时间】:2010-03-09 20:02:38
【问题描述】:

我有一个 Grid,其中一个列中包含一个 Image。图像本身没有任何 Width 或 Height 设置,但其大小通过 ColumnDefinition 设置正确控制。由此我假设图像控制器实际上设置了宽度和高度,但是当我尝试将另一个元素绑定到它的宽度和高度时它不起作用。调试时发现 Image.Height 和 Image.Width 的值为 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>

【问题讨论】:

    标签: .net wpf grid


    【解决方案1】:

    您正在寻找 .RenderSize 或 .ActualSize

    【讨论】:

    • 谢谢!两者都给出相同的值,但 ActualSize 更易于使用,因为我可以直接获取 ActualWidth 和 ActualHeight。
    【解决方案2】:

    何时调试?

    在控件的布局阶段使用 NAN 来表示“您想要的任何大小”或“未定义”。因此,特定阶段的任何断点都可能显示各种大小的 NAN。

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

    【讨论】:

    • 我发现它有助于将 WPF 宽度和高度解释为 期望 宽度和高度
    • 说得好;)下次会记住的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多