Linguaggio

FrameworkElement.ActualHeight Proprietà

Definizione

Ottiene l'altezza sottoposta a rendering di un elemento FrameworkElement. Vedere la sezione Osservazioni.

public:
 property double ActualHeight { double get(); };
double ActualHeight();
public double ActualHeight { get; }
var double = frameworkElement.actualHeight;
Public ReadOnly Property ActualHeight As Double

Valore della proprietà

Double

double

Altezza, in pixel, dell'oggetto . Il valore predefinito è 0. L'impostazione predefinita potrebbe essere rilevata se l'oggetto non è stato caricato e non è ancora stato coinvolto in un passaggio di layout che esegue il rendering dell'interfaccia utente.

Esempio

In questo esempio viene illustrato uno scenario comune in cui si usa ActualHeight di uno o più elementi nell'interfaccia utente per impostare Height di uno degli elementi coinvolti o di un elemento diverso, in modo che la stessa altezza netta venga mantenuta dopo l'azione. Questa operazione viene in genere eseguita in risposta ai gestori eventi richiamati quando gli elementi vengono aperti o chiusi o cambiano l'area di visualizzazione.

void SDKSample::WebViewControl::PageWithAppBar::BottomAppBar_Opened(Object^ sender, Object^ obj)
{
    // AppBar has Opened so we need to put the WebView back to its
    // original size/location.
    AppBar^ bottomAppBar = (AppBar^) sender;
    if (bottomAppBar != nullptr)
    {
        // Force layout so that we can guarantee that our AppBar's
        // actual height has height
        this->UpdateLayout();
        // Get the height of the AppBar
        double appBarHeight = bottomAppBar->ActualHeight;
        // Reduce the height of the WebView to allow for the AppBar
        WebView8->Height = WebView8->ActualHeight - appBarHeight;
        // Translate the WebView in the Y direction to reclaim the space occupied by the AppBar.  
        TranslateYOpen->To = -appBarHeight / 2.0;
        // Run our translate animation to match the AppBar
        OpenAppBar->Begin();
    }
}
void BottomAppBar_Opened(object sender, object e)
{
    // AppBar has Opened so we need to put the WebView back to its
    // original size/location.
    AppBar bottomAppBar = sender as AppBar;
    if (bottomAppBar != null)
    {
        // Force layout so that we can guarantee that our AppBar's
        // actual height has height
        this.UpdateLayout();
        // Get the height of the AppBar
        double appBarHeight = bottomAppBar.ActualHeight;
        // Reduce the height of the WebView to allow for the AppBar
        WebView8.Height = WebView8.ActualHeight - appBarHeight;
        // Translate the WebView in the Y direction to reclaim the space occupied by 
        // the AppBar.  Notice that we translate it by appBarHeight / 2.0.
        // This is because the WebView has VerticalAlignment and HorizontalAlignment
        // of 'Stretch' and when we reduce its size it reduces its overall size
        // from top and bottom by half the amount.
        TranslateYOpen.To = -appBarHeight / 2.0;
        // Run our translate animation to match the AppBar
        OpenAppBar.Begin();
    }
}

Commenti

Note

Sebbene abbia un campo sottostante ActualHeightProperty , ActualHeight non genera notifiche di modifica delle proprietà e deve essere considerato come una normale proprietà CLR e non una proprietà di dipendenza.

ActualHeight è una proprietà calcolata. I calcoli sono il risultato di un passaggio di layout, in cui l'oggetto viene ridimensionato nel layout in base alla logica degli elementi padre di layout successivi. Per altre info, vedi Definire layout con XAML.

ActualHeight può avere modifiche multiple o incrementali segnalate al valore a causa delle operazioni eseguite dal sistema di layout. Se si ottiene il valore durante l'iterazione del layout, il sistema di layout potrebbe ancora calcolare la misura necessaria dello spazio per gli oggetti figlio, i vincoli dall'oggetto padre e così via. Poiché il valore è basato su un passaggio di rendering effettivo, può essere leggermente indietro rispetto al valore impostato di proprietà come Height, che può essere la base della modifica di input.

Ai fini dell'associazione ElementName , ActualHeight non pubblica gli aggiornamenti quando cambia (a causa della sua natura calcolata asincrona e in fase di esecuzione). Non tentare di usare ActualHeight come origine di associazione per un'associazione ElementName . Se si ha uno scenario che richiede aggiornamenti basati su ActualHeight, usare un gestore SizeChanged .

Si applica a

Vedi anche