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 List
Behavior
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. Rectangle
struct
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
, LeftToRight
o 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.
Eventi
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 VisualElement
Height
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 MinimumWidthRequest
e 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.