Xamarin.Forms propriedades, métodos e eventos de controle comuns

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 em classes derivadas.

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 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, a tela de fundo será o objeto padrão Color , que será renderizado como transparente.

Behaviors

A Behaviors propriedade é um List dos Behavior objetos . Os comportamentos permitem anexar a funcionalidade reutilizável aos 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 valor da Bounds propriedade é atribuído durante o ciclo de layout. O Rectanglestruct 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 ficará visível. Para obter mais informações, consulte Clip with a Geometry.

Effects

A Effects propriedade é um List dos Effect objetos herdados da Element classe . Os efeitos permitem que 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 FlowDirection valor de enumeração. A direção do fluxo pode ser definida como MatchParent, LeftToRightou RightToLeft e determina a ordem e a direção do layout. Normalmente FlowDirection , a propriedade é usada para dar suporte a idiomas que leem 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 é um bool que determina se o controle recebe a entrada do usuário. O valor padrão é false, garantindo que o elemento receba entrada. Essa propriedade é transferida para elementos filho quando está definida. Definir a InputTransparent propriedade como true em uma classe de layout resultará em todos os elementos dentro do layout que não recebem 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 fará com que o IsFocused valor seja definido 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 o foco quando o usuário está avançando por meio de controles com a tecla tab. Se essa propriedade for falsa, a TabIndex propriedade 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 como o valor mínimo. Isso significa que elementos sem MinimumHeightRequest valor não terão altura escaloná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 como o valor mínimo. Isso significa que elementos sem MinimumWidthRequest valor não terão largura escaloná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 dessa propriedade é 1,0. Os valores fora do intervalo de 0 a 1 serão fixados. A Opacity propriedade só será aplicada se a IsVisible propriedade for true. A opacidade é aplicada iterativamente. Portanto, se um controle pai tiver opacidade 0,5 e seu filho tiver opacidade 0,5, o filho será renderizado com um valor de opacidade 0,25 efetivo. 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. Normalmente Parent , a propriedade é definida automaticamente em um elemento quando é adicionada como um filho de outro elemento.

Resources

A Resources propriedade é uma ResourceDictionary instância preenchida com pares chave/valor que normalmente são preenchidos no runtime do XAML. Esse dicionário permite que os desenvolvedores de aplicativos reutilizem objetos definidos em XAML no tempo de compilação e no tempo de execução. As chaves no dicionário são preenchidas do x:Key atributo da marca XAML. O objeto criado a partir de XAML é inserido no ResourceDictionary para a chave especificada. depois de 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 sobre o 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 sobre o 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 sobre o 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 dessa 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 dessa 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 dessa 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 por meio de 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 tradução delta a ser aplicada no eixo X. A tradução é aplicada após o layout e normalmente é usada para aplicar animações. Traduzir um elemento fora dos limites de seu contêiner pai pode impedir que as entradas funcionem.

Para obter mais informações, consulte Animação em Xamarin.Forms.

TranslationY

A TranslationY propriedade é um double valor que define a tradução delta a ser aplicada no eixo Y. A tradução é aplicada após o layout e normalmente é usada para aplicar animações. Traduzir um elemento fora dos limites de seu contêiner pai pode impedir que as entradas funcionem.

Para obter mais informações, consulte Animação em 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 os renderizadores sejam criados e aplicados seletivamente a VisualElement instâncias. A Visual propriedade é definida para corresponder ao pai, portanto, definir um renderizador em um componente também se aplicará a qualquer filho 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 de API do 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 retornará true se o foco do teclado tiver sido definido com êxito e false se a chamada de método não resultar em uma alteração de foco. O elemento deve ser capaz de receber o foco para que esse método funcione. Chamar o Focus método em elementos que estão fora da 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 o foco para que esse método funcione.

Eventos

Os eventos a seguir estão disponíveis na VisualElement classe . Para obter uma lista completa, consulte Xamarin.Forms Eventos do VisualElement.

Focused

O Focused evento é gerado sempre que a instância recebe o VisualElement foco. Esse evento não é gerado por meio da Xamarin.Forms pilha, ele é recebido diretamente do controle nativo. Esse evento é emitido pelo setter de IsFocused 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 é gerado por meio da Xamarin.Forms pilha, ele é recebido diretamente do controle nativo. Esse evento é emitido pelo setter de IsFocused 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. Há 160 unidades por polegada, ou 64 unidades por centímetro, em Xamarin.Forms.

Propriedades de solicitação

Propriedades cujos nomes contêm "solicitação" definem um valor desejado, que pode não corresponder ao valor renderizado real. Por exemplo, HeightRequest pode ser definido como 150, mas se o layout permitir apenas espaço para 100 unidades, o renderizado Height do controle será 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 MinimumWidthRequeste destinam-se a habilitar um controle mais preciso sobre como os elementos lidam com o estouro em relação uns aos outros. No entanto, o comportamento de layout relacionado a essas propriedades tem algumas considerações importantes.

Valores de propriedade mínima não especificados

Se um valor mínimo não for definido, a propriedade mínima usará como padrão -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 reduzirá .

O XAML a seguir mostra dois BoxView elementos em um 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 em sua largura solicitada, a primeira BoxView instância será considerada pelo processo de layout para ter uma largura mínima de 500 porque nenhum outro mínimo válido é especificado. A segunda BoxView instância tem permissão para reduzir verticalmente para 250 e reduzirá para caber até que sua largura atinja 250 unidades.

Se o comportamento desejado for para a primeira BoxView instância reduzir horizontalmente sem largura mínima, o MinimumWidthRequest deverá ser definido como um valor válido, como 0.

Valores de propriedade mínimos e absolutos

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 de propriedade mínimo, você sempre deve 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 para 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.