es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El tamaño de la cuadrícula es NaN, WPF.

Quiero obtener el tamaño de la cuadrícula, pero obtengo NaN…
Aquí está el archivo xaml:

<window x:class="TestWPFHCI.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:TestWPFHCI" mc:ignorable="d" xmlns:materialdesign="http://materialdesigninxaml.net/winfx/xaml/themes" title="MainWindow" height="700" width="1024" minheight="700" minwidth="1024">
    <grid background="#FFEEEEEE">
    <scrollviewer x:name="scrollOnGrid" margin="280 55 10 10" horizontalalignment="Stretch" verticalalignment="Top" horizontalscrollbarvisibility="Auto">
        <!--<Grid Name="MCGrid" Margin="100 100 50 50"></Grid>-->
        <grid width="Auto" margin="10 10 10 10" horizontalalignment="Stretch" verticalalignment="Top" x:name="MCGrid">
            <!-- <Grid x:Name="MCGrid"/> HorizontalAlignment="Center" VerticalAlignment="Center"/> -->
        </grid>
    </scrollviewer>

</grid> 

Y aquí está el código para obtener el tamaño de la cuadrícula, pero siempre obtengo NaN… ¿Alguna idea para la solución?

int width = MCGrid.Width;
Tags:  ,

Answer

  1. Avatar for davy.ai

    Dado que el ancho de MCGrid está configurado como “Auto” en el archivo XAML, no podrás obtener su ancho real directamente a través del código. En su lugar, puedes usar la propiedad ActualWidth de la instancia MCGrid para obtener el ancho actual del Grid:

    double ancho = MCGrid.ActualWidth;
    

    De manera similar, puedes usar la propiedad ActualHeight para obtener la altura actual del Grid.

Comments are closed.