Compartir a través de


UIElement.DesiredSize Propiedad

Definición

Obtiene el tamaño que este elemento calculó durante el paso de medición del proceso de diseño.

public:
 property System::Windows::Size DesiredSize { System::Windows::Size get(); };
public System.Windows.Size DesiredSize { get; }
member this.DesiredSize : System.Windows.Size
Public ReadOnly Property DesiredSize As Size

Valor de propiedad

Size

Tamaño calculado, que se convierte en el tamaño deseado para el paso de organización.

Ejemplos

En el ejemplo siguiente se muestra DesiredSize como parte de una MeasureOverride implementación. Observe cómo Measure se llama inmediatamente antes de obtener DesiredSize. Esto garantiza que DesiredSize contiene un valor legítimo.

virtual Size MeasureOverride(Size availableSize) override
{
    Size^ panelDesiredSize = gcnew Size();

    // In our example, we just have one child. 
    // Report that our panel requires just the size of its only child.
    for each (UIElement^ child in InternalChildren)
    {
        child->Measure(availableSize);
        panelDesiredSize = child->DesiredSize;
    }
    return *panelDesiredSize ;
}
protected override Size MeasureOverride(Size availableSize)
{
    Size panelDesiredSize = new Size();

    // In our example, we just have one child. 
    // Report that our panel requires just the size of its only child.
    foreach (UIElement child in InternalChildren)
    {
        child.Measure(availableSize);
        panelDesiredSize = child.DesiredSize;
    }

    return panelDesiredSize ;
}
Protected Overrides Function MeasureOverride(ByVal availableSize As System.Windows.Size) As System.Windows.Size
    Dim panelDesiredSize As Size = New Size()
    ' In our example, we just have one child. 
    ' Report that our panel requires just the size of its only child.
    For Each child As UIElement In InternalChildren
        child.Measure(availableSize)
        panelDesiredSize = child.DesiredSize
    Next
    Return panelDesiredSize
End Function

Comentarios

El valor devuelto por esta propiedad solo será una medida válida si el valor de la IsMeasureValid propiedad es true.

DesiredSize normalmente se comprueba como uno de los factores de medida al implementar invalidaciones de comportamiento de diseño como ArrangeOverride, MeasureOverrideo OnRender (en el OnRender caso, puede comprobarlo RenderSize , pero esto depende de la implementación). En función del escenario, DesiredSize la lógica de implementación podría respetarse por completo, se podrían aplicar restricciones DesiredSize , y estas restricciones también podrían cambiar otras características del elemento primario o el elemento secundario. Por ejemplo, un control que admite regiones desplazables (pero elige no derivar de los controles de nivel de marco de WPF que ya habilitan regiones desplazables) podría comparar el tamaño disponible con DesiredSize. Después, el control podría establecer un estado interno que habilitó las barras de desplazamiento en la interfaz de usuario para ese control. O bien, DesiredSize también podría omitirse en determinados escenarios.

Se aplica a

Consulte también