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, LeftToRightou 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.