Xamarin.Forms Propriedades, métodos e eventos comuns de controle
A Xamarin.FormsVisualElement
classe é a classe base para a maioria dos controles usados em um Xamarin.Forms aplicativo. A VisualElement
classe define muitas propriedades, métodos e eventos que são usados na derivação de classes.
Propriedades
As propriedades a seguir estão disponíveis em VisualElement
objetos.
AnchorX
A AnchorX
propriedade é um double
valor que define o ponto central no eixo X para transformações como escala e rotação. O valor padrão é 0,5.
AnchorY
A AnchorY
propriedade é um double
valor que define o ponto central no eixo Y para transformações como escala e rotação. O valor padrão é 0,5.
Background
A Background
propriedade é um Brush
valor que permite que os pincéis sejam usados como plano de fundo em qualquer controle. O valor padrão é Brush.Default
.
BackgroundColor
A BackgroundColor
propriedade é uma Color
que determina a cor da tela de fundo do controle. Se não estiver definido, o plano de fundo será o objeto padrão Color
, que será renderizado como transparente.
Behaviors
A Behaviors
propriedade é um List
de Behavior
objetos. Os comportamentos permitem que você anexe funcionalidade reutilizável a elementos adicionando-os Behaviors
à lista. Para obter mais informações sobre a Behavior
classe, consulte Xamarin.Forms Comportamentos.
Bounds
A Bounds
propriedade é um objeto somente Rectangle
leitura que representa o espaço ocupado pelo controle. O Bounds
valor da propriedade é atribuído durante o ciclo de layout. O Rectangle
struct
contém propriedades e métodos úteis para testar a interseção e a contenção de retângulos. Para obter mais informações, consulte a API RectangleXamarin.Forms.
Clip
A Clip
propriedade é um Geometry
objeto que define a estrutura de tópicos do conteúdo de um elemento. Para definir um clipe, use um Geometry
objeto como EllipseGeometry
para definir a propriedade do Clip
elemento. Somente a área que está dentro da região da geometria será visível. Para obter mais informações, consulte Recortar com uma geometria.
Effects
A Effects
propriedade é um List
de Effect
objetos, herdado da Element
classe. Os efeitos permitem que os controles nativos sejam personalizados e normalmente são usados para pequenas alterações de estilo. Para obter mais informações sobre a Effect
classe, consulte Xamarin.Forms Efeitos.
FlowDirection
A FlowDirection
propriedade é um valor de FlowDirection
enumeração. A direção do fluxo pode ser definida como MatchParent
, LeftToRight
ou RightToLeft
e determina a ordem e a direção do layout. A FlowDirection
propriedade normalmente é usada para dar suporte a idiomas que são lidos da direita para a esquerda.
Height
A Height
propriedade é um valor somente double
leitura que descreve a altura renderizada do controle. A Height
propriedade é calculada durante o ciclo de layout e não pode ser definida diretamente. A altura de um controle pode ser solicitada usando a propriedade HeightRequest.
HeightRequest
A HeightRequest
propriedade é um double
valor que determina a altura desejada do controle. A altura absoluta do controle pode não corresponder ao valor solicitado. Para obter mais informações, consulte Propriedades da solicitação.
InputTransparent
A InputTransparent
propriedade é uma bool
que determina se o controle recebe entrada do usuário. O valor padrão é false
, garantindo que o elemento receba entrada. Essa propriedade é transferida para elementos filho quando é definida. Definir a InputTransparent
propriedade como true
em uma classe de layout fará com que todos os elementos dentro do layout não recebam entrada.
IsEnabled
A IsEnabled
propriedade é um bool
valor que determina se o controle reage à entrada do usuário. O valor padrão é true
. Definir essa propriedade como false impedirá que o controle aceite a entrada do usuário.
IsFocused
A IsFocused
propriedade é um bool
valor que descreve se o controle é atualmente o objeto focado. Chamar o Focus
método no controle resultará na definição do IsFocused
valor como true. Chamar o Unfocus
método definirá essa propriedade como false.
IsTabStop
A IsTabStop
propriedade é um bool
valor que define se o controle recebe foco quando o usuário está avançando pelos controles com a tecla tab. Se essa propriedade for falsa, ela TabIndex
não terá efeito.
IsVisible
A IsVisible
propriedade é um bool
valor que determina se o controle é renderizado. Os controles com a IsVisible
propriedade definida como false não serão exibidos, não serão considerados para cálculos de espaço durante o ciclo de layout e não poderão aceitar a entrada do usuário.
MinimumHeightRequest
A MinimumHeightRequest
propriedade é um double
valor que determina como o estouro é tratado quando dois elementos estão competindo por espaço limitado. Definir a MinimumHeightRequest
propriedade permite que o processo de layout reduza o elemento para a dimensão mínima solicitada. Se não MinimumHeightRequest
for especificado, o valor padrão será -1 e o processo de layout considerará o HeightRequest
valor mínimo. Isso significa que os elementos sem MinimumHeightRequest
valor não terão altura escalável.
Para obter mais informações, consulte Propriedades mínimas de solicitação.
MinimumWidthRequest
A MinimumWidthRequest
propriedade é um double
valor que determina como o estouro é tratado quando dois elementos estão competindo por espaço limitado. Definir a MinimumWidthRequest
propriedade permite que o processo de layout reduza o elemento para a dimensão mínima solicitada. Se não MinimumWidthRequest
for especificado, o valor padrão será -1 e o processo de layout considerará o WidthRequest
valor mínimo. Isso significa que os elementos sem MinimumWidthRequest
valor não terão largura escalável.
Para obter mais informações, consulte Propriedades mínimas de solicitação.
Opacity
A Opacity
propriedade é um double
valor de zero a um que determina a opacidade do controle durante a renderização. O valor padrão para essa propriedade é 1,0. Valores fora do intervalo de 0 a 1 serão fixados. A Opacity
propriedade só será aplicada se for IsVisible
true
. A opacidade é aplicada iterativamente. Portanto, se um controle pai tiver 0,5 de opacidade e seu filho tiver 0,5 de opacidade, o filho será renderizado com um valor efetivo de 0,25 de opacidade. Definir a Opacity
propriedade de um controle de entrada como 0 tem um comportamento indefinido.
Parent
A Parent
propriedade é herdada da Element
classe. Essa propriedade é um Element
objeto que é o pai do controle. A Parent
propriedade normalmente é definida automaticamente em um elemento quando ele é adicionado como filho de outro elemento.
Resources
A Resources
propriedade é uma ResourceDictionary
instância preenchida com pares de chave/valor que normalmente são preenchidos em runtime de XAML. Esse dicionário permite que os desenvolvedores de aplicativos reutilizem objetos definidos em XAML em tempo de compilação e tempo de execução. As chaves no dicionário são preenchidas a partir do x:Key
atributo da marca XAML. O objeto criado a partir de XAML é inserido ResourceDictionary
no para a chave especificada. uma vez inicializado.
Para obter mais informações, consulte Dicionários de recursos.
Rotation
A Rotation
propriedade é um double
valor entre zero e 360 que define a rotação em torno do eixo Z em graus. O valor padrão dessa propriedade é 0. A rotação é aplicada em relação aos AnchorX
valores e AnchorY
.
RotationX
A RotationX
propriedade é um double
valor entre zero e 360 que define a rotação em torno do eixo X em graus. O valor padrão dessa propriedade é 0. A rotação é aplicada em relação aos AnchorX
valores e AnchorY
.
RotationY
A RotationY
propriedade é um double
valor entre zero e 360 que define a rotação em torno do eixo Y em graus. O valor padrão dessa propriedade é 0. A rotação é aplicada em relação aos AnchorX
valores e AnchorY
.
Scale
A Scale
propriedade é um double
valor que define a escala do controle. O valor padrão desta propriedade é 1.0. A escala é aplicada em relação aos AnchorX
valores e AnchorY
.
ScaleX
A ScaleX
propriedade é um double
valor que define a escala do controle ao longo do eixo X. O valor padrão desta propriedade é 1.0. A ScaleX
propriedade é aplicada em relação ao AnchorX
valor.
ScaleY
A ScaleY
propriedade é um double
valor que define a escala do controle ao longo do eixo Y. O valor padrão desta propriedade é 1.0. A ScaleY
propriedade é aplicada em relação ao AnchorY
valor.
Style
A Style
propriedade é herdada da NavigableElement
classe. Essa propriedade é uma instância da Style
classe. A Style
classe contém gatilhos, setters e comportamentos que definem a aparência e o comportamento dos elementos visuais. Para obter mais informações, consulte Xamarin.Forms Estilos XAML.
StyleClass
A StyleClass
propriedade é uma lista de string
objetos que representam os nomes das Style
classes. Essa propriedade é herdada da NavigableElement
classe. A StyleClass
propriedade permite que vários atributos de estilo sejam aplicados a uma VisualElement
instância. Para obter mais informações, consulte Xamarin.Forms Classes de estilo.
TabIndex
A TabIndex
propriedade é um int
valor que define a ordem de controle ao avançar pelos controles com a tecla tab. A TabIndex
propriedade é a implementação da propriedade definida na ITabStopElement
interface, que a VisualElement
classe implementa.
TranslationX
A TranslationX
propriedade é um double
valor que define a conversão delta a ser aplicada no eixo X. A tradução é aplicada após o layout e normalmente é usada para aplicar animações. Converter um elemento fora dos limites de seu contêiner pai pode impedir que as entradas funcionem.
Para obter mais informações, consulte Animação no Xamarin.Forms.
TranslationY
A TranslationY
propriedade é um double
valor que define a conversão delta a ser aplicada no eixo Y. A tradução é aplicada após o layout e normalmente é usada para aplicar animações. Converter um elemento fora dos limites de seu contêiner pai pode impedir que as entradas funcionem.
Para obter mais informações, consulte Animação no Xamarin.Forms.
Triggers
A Triggers
propriedade é somente List
leitura de TriggerBase
objetos. Os gatilhos permitem que os desenvolvedores de aplicativos expressem ações em XAML que alteram a aparência visual dos controles em resposta a alterações de evento ou propriedade. Para obter mais informações, consulte Xamarin.Forms Gatilhos.
Visual
A Visual
propriedade é uma IVisual
instância que permite que renderizadores sejam criados e aplicados seletivamente a VisualElement
instâncias. A Visual
propriedade é definida para corresponder ao pai, portanto, a definição de um renderizador em um componente também se aplicará a todos os filhos desse componente. Se nenhum renderizador personalizado for definido em um controle ou em seus ancestrais, o renderizador padrão Xamarin.Forms será usado. Para obter mais informações, consulte Xamarin.Forms Visual.
Width
A Width
propriedade é um valor somente double
leitura que descreve a largura renderizada do controle. A Width
propriedade é calculada durante o ciclo de layout e não pode ser definida diretamente. A largura de um controle pode ser solicitada usando a propriedade WidthRequest.
WidthRequest
A WidthRequest
propriedade é um double
valor que determina a largura desejada do controle. A largura absoluta do controle pode não corresponder ao valor solicitado. Para obter mais informações, consulte Propriedades da solicitação.
X
A X
propriedade é um valor somente double
leitura que descreve a posição X atual do controle.
Y
A Y
propriedade é um valor somente double
leitura que descreve a posição Y atual do controle.
Métodos
Os métodos a seguir estão disponíveis na VisualElement
classe. Para obter uma lista completa, consulte Métodos da API VisualElement.
FindByName
O FindByName
método é herdado da Element
classe e tem a seguinte assinatura:
public object FindByName (string name)
Esse método pesquisa todos os elementos filho para o argumento fornecido name
e retorna o elemento que tem o nome especificado. Se nenhuma correspondência for encontrada, null
será retornado.
Focus
O Focus
método tenta definir o foco no elemento. Esse método tem a seguinte assinatura:
public bool Focus ()
O Focus
método retorna true
se o foco do teclado foi definido com êxito e false
se a chamada do método não resultou em uma alteração de foco. O elemento deve ser capaz de receber foco para que esse método funcione. Chamar o método em elementos que estão fora da Focus
tela ou não realizados tem um comportamento indefinido.
Unfocus
O Unfocus
método tenta remover o foco no elemento. Esse método tem a seguinte assinatura:
public void Unfocus ()
O elemento já deve ter foco para que esse método funcione.
Eventos
Os seguintes eventos estão disponíveis na VisualElement
classe. Para obter uma lista completa, consulte Xamarin.Forms Eventos VisualElement.
Focused
O Focused
evento é gerado sempre que a VisualElement
instância recebe foco. Esse evento não é borbulhado Xamarin.Forms pela pilha, ele é recebido diretamente do controle nativo. Esse evento é emitido pelo IsFocused
setter de propriedade.
SizeChanged
O SizeChanged
evento é gerado sempre que a instância Height
ou Width
as VisualElement
propriedades são alteradas. Se os desenvolvedores quiserem responder diretamente à alteração de tamanho, em vez de responder ao evento pós-alteração, eles deverão implementar o OnSizeAllocated
método virtual.
Unfocused
O Unfocused
evento é gerado sempre que a instância perde o VisualElement
foco. Esse evento não é borbulhado Xamarin.Forms pela pilha, ele é recebido diretamente do controle nativo. Esse evento é emitido pelo IsFocused
setter de propriedade.
Unidades de medida
As plataformas Android, iOS e UWP têm unidades de medida diferentes que podem variar entre dispositivos. Xamarin.Forms usa uma unidade de medida independente de plataforma que normaliza unidades entre dispositivos e plataformas. Existem 160 unidades por polegada, ou 64 unidades por centímetro, em Xamarin.Forms.
Propriedades de solicitação
As propriedades cujos nomes contêm "request" definem um valor desejado, que pode não corresponder ao valor renderizado real. Por exemplo, pode ser definido como 150, HeightRequest
mas se o layout permitir apenas espaço para 100 unidades, a renderização Height
do controle será de apenas 100. O tamanho renderizado é afetado pelo espaço disponível e pelos componentes contidos.
Propriedades mínimas de solicitação
As propriedades mínimas de solicitação incluem MinimumHeightRequest
e MinimumWidthRequest
, e destinam-se a permitir um controle mais preciso sobre como os elementos lidam com o estouro em relação uns aos outros. No entanto, o comportamento do layout relacionado a essas propriedades tem algumas considerações importantes.
Valores mínimos de propriedade não especificados
Se um valor mínimo não for definido, a propriedade mínima será padronizada como -1. O processo de layout ignora esse valor e considera o valor absoluto como o mínimo. A consequência prática desse comportamento é que um elemento sem valor mínimo especificado não diminuirá. Um elemento com um valor mínimo especificado será reduzido.
O XAML a seguir mostra dois BoxView
elementos em uma horizontal StackLayout
:
<StackLayout Orientation="Horizontal">
<BoxView HeightRequest="100" BackgroundColor="Purple" WidthRequest="500"></BoxView>
<BoxView HeightRequest="100" BackgroundColor="Green" WidthRequest="500" MinimumWidthRequest="250"></BoxView>
</StackLayout>
A primeira BoxView
instância solicita uma largura de 500 e não especifica uma largura mínima. A segunda BoxView
instância solicita uma largura de 500 e uma largura mínima de 250. Se o elemento pai StackLayout
não for largo o suficiente para conter ambos os componentes na largura solicitada, a primeira BoxView
instância será considerada pelo processo de layout como tendo uma largura mínima de 500 porque nenhum outro mínimo válido é especificado. A segunda BoxView
instância pode ser reduzida para 250 e encolherá para caber até que sua largura atinja 250 unidades.
Se o comportamento desejado for que a primeira BoxView
instância seja reduzida sem largura mínima, o MinimumWidthRequest
deverá ser definido como um valor válido, como 0.
Valores mínimos e absolutos das propriedades
O comportamento é indefinido quando o valor mínimo é maior que o valor absoluto. Por exemplo, se WidthRequest
for definido como 100, a MinimumWidthRequest
propriedade nunca deverá exceder 100. Ao especificar um valor mínimo de propriedade, você deve sempre especificar um valor absoluto para garantir que o valor absoluto seja maior que o valor mínimo.
Propriedades mínimas em uma grade
Grid
Os layouts têm seu próprio sistema de dimensionamento relativo de linhas e colunas. Usar MinimumWidthRequest
ou MinimumHeightRequest
dentro de um Grid
layout não terá efeito. Para obter mais informações, consulte Xamarin.Forms Grade.