Как мой размер элемента управления может быть NaN, когда он действительно отображается? - PullRequest
3 голосов
/ 09 марта 2010

У меня есть сетка, которая содержит изображение в одном из столбцов. Само изображение не имеет установленной ширины или высоты, но его размер корректно контролируется с помощью набора 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>

Ответы [ 2 ]

3 голосов
/ 09 марта 2010

Вы ищете .RenderSize или .ActualSize

1 голос
/ 09 марта 2010

Отладка КОГДА?

NAN используется на этапе макета от элемента управления, чтобы сказать «любой размер, который вы хотите» или «неопределенный». Таким образом, любая точка останова во время определенной фазы может показывать NAN для различных размеров.

Ваши элементы управления не определяют определенный размер, поэтому, естественно, это "NAN". Окончательный размер сохраняется в других свойствах;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...