Xamarin.Forms proprietà, metodi ed eventi di controllo comuni

La Xamarin.FormsVisualElement classe è la classe base per la maggior parte dei controlli usati in un'applicazione Xamarin.Forms . La VisualElement classe definisce molte proprietà, metodi ed eventi usati nelle classi di derivazione.

Proprietà

Per gli oggetti sono disponibili VisualElement le proprietà seguenti.

AnchorX

La AnchorX proprietà è un double valore che definisce il punto centrale sull'asse X per le trasformazioni, ad esempio scala e rotazione. Il valore predefinito è 0,5.

AnchorY

La AnchorY proprietà è un double valore che definisce il punto centrale sull'asse Y per le trasformazioni, ad esempio scala e rotazione. Il valore predefinito è 0,5.

Background

La Background proprietà è un Brush valore che consente l'utilizzo dei pennelli come sfondo in qualsiasi controllo. Il valore predefinito è Brush.Default.

BackgroundColor

La BackgroundColor proprietà è un oggetto Color che determina il colore di sfondo del controllo. Se non è impostato, lo sfondo sarà l'oggetto predefinito Color , che esegue il rendering come trasparente.

Behaviors

La Behaviors proprietà è di ListBehavior oggetti . I comportamenti consentono di associare funzionalità riutilizzabili agli elementi aggiungendole all'elenco Behaviors . Per altre informazioni sulla Behavior classe , vedere Xamarin.Forms Comportamenti.

Bounds

La Bounds proprietà è un oggetto di sola Rectangle lettura che rappresenta lo spazio occupato dal controllo . Il valore della Bounds proprietà viene assegnato durante il ciclo di layout. Rectanglestruct Contiene proprietà e metodi utili per testare l'intersezione e il contenimento dei rettangoli. Per altre informazioni, vedere l'API Xamarin.FormsRectangle.

Clip

La Clip proprietà è un Geometry oggetto che definisce la struttura del contenuto di un elemento. Per definire una clip, utilizzare un Geometry oggetto come EllipseGeometry per impostare la proprietà dell'elemento Clip . Solo l'area all'interno dell'area della geometria sarà visibile. Per altre informazioni, vedere Ritaglia con una geometria.

Effects

La Effects proprietà è un List oggetto di Effect oggetti ereditati dalla Element classe . Gli effetti consentono la personalizzazione dei controlli nativi e vengono in genere usati per piccole modifiche di stile. Per altre informazioni sulla Effect classe , vedere Xamarin.Forms Effetti.

FlowDirection

La FlowDirection proprietà è un FlowDirection valore di enumerazione. La direzione del flusso può essere impostata su MatchParent, LeftToRighto RightToLeft e determina l'ordine e la direzione del layout. La FlowDirection proprietà viene in genere utilizzata per supportare le lingue che leggono da destra a sinistra.

Height

La Height proprietà è un valore di sola double lettura che descrive l'altezza sottoposta a rendering del controllo. La Height proprietà viene calcolata durante il ciclo di layout e non può essere impostata direttamente. L'altezza di un controllo può essere richiesta tramite la proprietà HeightRequest.

HeightRequest

La HeightRequest proprietà è un double valore che determina l'altezza desiderata del controllo. L'altezza assoluta del controllo potrebbe non corrispondere al valore richiesto. Per altre informazioni, vedere Proprietà della richiesta.

InputTransparent

La InputTransparent proprietà è un oggetto bool che determina se il controllo riceve l'input dell'utente. Il valore predefinito è false, assicurandosi che l'elemento riceva l'input. Questa proprietà viene trasferita agli elementi figlio quando è impostata. L'impostazione della InputTransparent proprietà su true su su una classe di layout comporterà la mancata ricezione dell'input in tutti gli elementi all'interno del layout.

IsEnabled

La IsEnabled proprietà è un bool valore che determina se il controllo reagisce all'input dell'utente. Il valore predefinito è true. L'impostazione di questa proprietà su false impedirà al controllo di accettare l'input dell'utente.

IsFocused

La IsFocused proprietà è un bool valore che descrive se il controllo è attualmente l'oggetto attivo. La chiamata al Focus metodo nel controllo comporterà l'impostazione del IsFocused valore su true. La chiamata al Unfocus metodo imposta questa proprietà su false.

IsTabStop

La IsTabStop proprietà è un bool valore che definisce se il controllo riceve lo stato attivo quando l'utente avanza attraverso i controlli con il tasto TAB. Se questa proprietà è false, la TabIndex proprietà non avrà alcun effetto.

IsVisible

La IsVisible proprietà è un bool valore che determina se viene eseguito il rendering del controllo. I controlli con la IsVisible proprietà impostata su false non verranno visualizzati, non verranno considerati per i calcoli dello spazio durante il ciclo di layout e non potranno accettare l'input dell'utente.

MinimumHeightRequest

La MinimumHeightRequest proprietà è un double valore che determina come viene gestito l'overflow quando due elementi sono in competizione per lo spazio limitato. L'impostazione della MinimumHeightRequest proprietà consente al processo di layout di ridimensionare l'elemento fino alla dimensione minima richiesta. Se non viene specificato alcun MinimumHeightRequest valore, il valore predefinito è -1 e il processo di layout considererà il HeightRequest valore minimo. Ciò significa che gli elementi senza valore MinimumHeightRequest non avranno altezza scalabile.

Per altre informazioni, vedere Proprietà minime delle richieste.

MinimumWidthRequest

La MinimumWidthRequest proprietà è un double valore che determina come viene gestito l'overflow quando due elementi sono in competizione per lo spazio limitato. L'impostazione della MinimumWidthRequest proprietà consente al processo di layout di ridimensionare l'elemento fino alla dimensione minima richiesta. Se non viene specificato alcun MinimumWidthRequest valore, il valore predefinito è -1 e il processo di layout considererà il WidthRequest valore minimo. Ciò significa che gli elementi senza MinimumWidthRequest valore non avranno una larghezza scalabile.

Per altre informazioni, vedere Proprietà minime delle richieste.

Opacity

La Opacity proprietà è un double valore compreso tra zero e uno che determina l'opacità del controllo durante il rendering. Il valore predefinito per questa proprietà è 1.0. I valori non compresi nell'intervallo compreso tra 0 e 1 verranno bloccati. La Opacity proprietà viene applicata solo se la IsVisible proprietà è true. L'opacità viene applicata in modo iterativo. Pertanto, se un controllo padre ha opacità 0,5 e il relativo figlio ha opacità 0,5, il rendering dell'elemento figlio verrà eseguito con un valore di opacità 0,25 effettivo. L'impostazione della Opacity proprietà di un controllo di input su 0 ha un comportamento non definito.

Parent

La proprietà Parent viene ereditata dalla classe Element. Questa proprietà è un Element oggetto padre del controllo. La Parent proprietà viene in genere impostata automaticamente su un elemento quando viene aggiunta come elemento figlio di un altro elemento.

Resources

La Resources proprietà è un'istanza ResourceDictionary popolata con coppie chiave/valore che vengono in genere popolate in fase di esecuzione da XAML. Questo dizionario consente agli sviluppatori di applicazioni di riutilizzare gli oggetti definiti in XAML sia in fase di compilazione che in fase di esecuzione. Le chiavi nel dizionario vengono popolate dall'attributo x:Key del tag XAML. L'oggetto creato da XAML viene inserito nell'oggetto ResourceDictionary per la chiave specificata. una volta inizializzato.

Per altre informazioni, vedere Dizionari risorse.

Rotation

La Rotation proprietà è un double valore compreso tra zero e 360 che definisce la rotazione dell'asse Z in gradi. Il valore predefinito di questa proprietà è 0. La rotazione viene applicata in relazione ai AnchorX valori e AnchorY .

RotationX

La RotationX proprietà è un double valore compreso tra zero e 360 che definisce la rotazione dell'asse X in gradi. Il valore predefinito di questa proprietà è 0. La rotazione viene applicata in relazione ai AnchorX valori e AnchorY .

RotationY

La RotationY proprietà è un double valore compreso tra zero e 360 che definisce la rotazione dell'asse Y in gradi. Il valore predefinito di questa proprietà è 0. La rotazione viene applicata in relazione ai AnchorX valori e AnchorY .

Scale

La Scale proprietà è un double valore che definisce la scala del controllo. Il valore predefinito di questa proprietà è 1,0. La scala viene applicata in relazione ai AnchorX valori e AnchorY .

ScaleX

La ScaleX proprietà è un double valore che definisce la scala del controllo lungo l'asse X. Il valore predefinito di questa proprietà è 1,0. La ScaleX proprietà viene applicata in relazione al AnchorX valore .

ScaleY

La ScaleY proprietà è un double valore che definisce la scala del controllo lungo l'asse Y. Il valore predefinito di questa proprietà è 1,0. La ScaleY proprietà viene applicata in relazione al AnchorY valore .

Style

La proprietà Style viene ereditata dalla classe NavigableElement. Questa proprietà è un'istanza della Style classe . La Style classe contiene trigger, setter e comportamenti che definiscono l'aspetto e il comportamento degli elementi visivi. Per altre informazioni, vedi Xamarin.Forms Stili XAML.

StyleClass

La StyleClass proprietà è un elenco di string oggetti che rappresentano i nomi delle Style classi. Questa proprietà viene ereditata dalla classe NavigableElement. La StyleClass proprietà consente l'applicazione di più attributi di stile a un'istanza VisualElement di . Per altre informazioni, vedere Xamarin.Forms Classi di stile.

TabIndex

La TabIndex proprietà è un int valore che definisce l'ordine di controllo quando si avanza attraverso i controlli con il tasto TAB. La TabIndex proprietà è l'implementazione della proprietà definita nell'interfaccia ITabStopElement implementata dalla VisualElement classe .

TranslationX

La TranslationX proprietà è un double valore che definisce la conversione differenziale da applicare sull'asse X. La traduzione viene applicata dopo il layout e viene in genere usata per l'applicazione di animazioni. La conversione di un elemento all'esterno dei limiti del contenitore padre può impedire il funzionamento degli input.

Per altre informazioni, vedere Animazione in Xamarin.Forms.

TranslationY

La TranslationY proprietà è un double valore che definisce la conversione differenziale da applicare sull'asse Y. La traduzione viene applicata dopo il layout e viene in genere usata per l'applicazione di animazioni. La conversione di un elemento all'esterno dei limiti del contenitore padre può impedire il funzionamento degli input.

Per altre informazioni, vedere Animazione in Xamarin.Forms.

Triggers

La Triggers proprietà è di sola List lettura di TriggerBase oggetti. I trigger consentono agli sviluppatori di applicazioni di esprimere azioni in XAML che modificano l'aspetto visivo dei controlli in risposta alle modifiche di eventi o proprietà. Per altre informazioni, vedere Xamarin.Forms Trigger.

Visual

La Visual proprietà è un'istanza IVisual che consente la creazione e l'applicazione selettiva dei renderer alle VisualElement istanze. La Visual proprietà è impostata in modo che corrisponda al relativo elemento padre, in modo che la definizione di un renderer in un componente venga applicata anche a tutti gli elementi figlio di tale componente. Se non è impostato alcun renderer personalizzato su un controllo o sui relativi predecessori, verrà usato il renderer predefinito Xamarin.Forms . Per altre informazioni, vedere Xamarin.Forms Visual.

Width

La Width proprietà è un valore di sola double lettura che descrive la larghezza sottoposta a rendering del controllo. La Width proprietà viene calcolata durante il ciclo di layout e non può essere impostata direttamente. La larghezza di un controllo può essere richiesta utilizzando la proprietà WidthRequest.

WidthRequest

La WidthRequest proprietà è un double valore che determina la larghezza desiderata del controllo. La larghezza assoluta del controllo potrebbe non corrispondere al valore richiesto. Per altre informazioni, vedere Proprietà della richiesta.

X

La X proprietà è un valore di sola double lettura che descrive la posizione X corrente del controllo.

Y

La Y proprietà è un valore di sola double lettura che descrive la posizione Y corrente del controllo.

Metodi

Nella classe sono disponibili i VisualElement metodi seguenti. Per un elenco completo, vedere Metodi dell'API VisualElement.

FindByName

Il FindByName metodo viene ereditato dalla Element classe e ha la firma seguente:

public object FindByName (string name)

Questo metodo cerca in tutti gli elementi figlio l'argomento specificato name e restituisce l'elemento con il nome specificato. Se non viene trovata alcuna corrispondenza, null viene restituita.

Focus

Il Focus metodo tenta di impostare lo stato attivo sull'elemento. Questo metodo ha la firma seguente:

public bool Focus ()

Il Focus metodo restituisce true se lo stato attivo della tastiera è stato impostato correttamente e false se la chiamata al metodo non ha generato una modifica dello stato attivo. L'elemento deve essere in grado di ricevere lo stato attivo affinché questo metodo funzioni. La chiamata al Focus metodo sugli elementi non visualizzati o non realizzati ha un comportamento indefinito.

Unfocus

Il Unfocus metodo tenta di rimuovere lo stato attivo sull'elemento. Questo metodo ha la firma seguente:

public void Unfocus ()

L'elemento deve avere già lo stato attivo per il funzionamento di questo metodo.

evento

Nella classe sono disponibili VisualElement gli eventi seguenti. Per un elenco completo, vedere Xamarin.Forms Eventi di VisualElement.

Focused

L'evento Focused viene generato ogni volta che l'istanza VisualElement riceve lo stato attivo. Questo evento non viene visualizzato nello Xamarin.Forms stack, viene ricevuto direttamente dal controllo nativo. Questo evento viene generato dal setter della IsFocused proprietà.

SizeChanged

L'evento SizeChanged viene generato ogni volta che l'istanza VisualElementHeight o Width le proprietà cambiano. Se gli sviluppatori desiderano rispondere direttamente alla modifica delle dimensioni, anziché rispondere all'evento post-modifica, devono implementare invece il OnSizeAllocated metodo virtuale.

Unfocused

L'evento Unfocused viene generato ogni volta che l'istanza VisualElement perde lo stato attivo. Questo evento non viene visualizzato nello Xamarin.Forms stack, viene ricevuto direttamente dal controllo nativo. Questo evento viene generato dal setter della IsFocused proprietà.

Unità di misura

Tutte le piattaforme Android, iOS e UWP hanno unità di misura diverse che possono variare tra i dispositivi. Xamarin.Forms usa un'unità di misura indipendente dalla piattaforma che normalizza le unità tra dispositivi e piattaforme. Ci sono 160 unità per pollice, o 64 unità per centimetro, in Xamarin.Forms.

Proprietà delle richieste

Le proprietà i cui nomi contengono "request" definiscono un valore desiderato, che potrebbe non corrispondere al valore di cui è stato eseguito il rendering effettivo. Ad esempio, HeightRequest potrebbe essere impostato su 150, ma se il layout consente solo spazio per 100 unità, il rendering Height del controllo sarà solo 100. Le dimensioni di cui è stato eseguito il rendering sono influenzate dallo spazio disponibile e dai componenti contenuti.

Proprietà minime della richiesta

Le proprietà minime delle richieste includono MinimumHeightRequest e MinimumWidthRequeste consentono un controllo più preciso sul modo in cui gli elementi gestiscono l'overflow l'uno rispetto all'altro. Tuttavia, il comportamento del layout correlato a queste proprietà presenta alcune considerazioni importanti.

Valori minimi non specificati

Se non è impostato un valore minimo, per impostazione predefinita la proprietà minima è -1. Il processo di layout ignora questo valore e considera il valore assoluto come minimo. La conseguenza pratica di questo comportamento è che un elemento senza valore minimo specificato non verrà compattato. Un elemento con un valore minimo specificato verrà compattato.

Il codice XAML seguente mostra due BoxView elementi in un oggetto orizzontale StackLayout:

<StackLayout Orientation="Horizontal">
    <BoxView HeightRequest="100" BackgroundColor="Purple" WidthRequest="500"></BoxView>
    <BoxView HeightRequest="100" BackgroundColor="Green" WidthRequest="500" MinimumWidthRequest="250"></BoxView>
</StackLayout>

La prima BoxView istanza richiede una larghezza di 500 e non specifica una larghezza minima. La seconda BoxView istanza richiede una larghezza di 500 e una larghezza minima di 250. Se l'elemento padre StackLayout non è sufficientemente ampio da contenere entrambi i componenti con la larghezza richiesta, la prima BoxView istanza verrà considerata dal processo di layout per avere una larghezza minima di 500 perché non viene specificato alcun altro valore minimo valido. La seconda BoxView istanza può essere ridotta a 250 e verrà ridotta fino a quando la larghezza non raggiunge 250 unità.

Se il comportamento desiderato è che la prima BoxView istanza venga ridotta senza larghezza minima, deve MinimumWidthRequest essere impostata su un valore valido, ad esempio 0.

Valori minimi e assoluti delle proprietà

Il comportamento non è definito quando il valore minimo è maggiore del valore assoluto. Ad esempio, se WidthRequest è impostato su 100, la MinimumWidthRequest proprietà non deve mai superare 100. Quando si specifica un valore minimo della proprietà, è necessario specificare sempre un valore assoluto per assicurarsi che il valore assoluto sia maggiore del valore minimo.

Proprietà minime all'interno di una griglia

Grid i layout hanno un proprio sistema per il ridimensionamento relativo di righe e colonne. L'uso MinimumWidthRequest o MinimumHeightRequest all'interno di un Grid layout non avrà effetto. Per altre informazioni, vedere Xamarin.Forms Grid.