Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Expander controlo fornece um contentor expansível para alojar qualquer conteúdo. O controlo tem duas propriedades principais para armazenar o seu conteúdo:
Cabeçalho
Esta Header propriedade pode ser fornecida com qualquer visualização para permitir a personalização total. O Header estará sempre visível e, ao interagir com ele (clicando ou tocando), será mostrado/recolhido o Content.
Observação
Não é recomendado colocar controlos dentro do cabeçalho que permitam a interação do utilizador.
Content
Este é o conteúdo principal que aparece quando a Header propriedade é interagida com ela (clicada ou tocada) ou quando a IsExpanded propriedade for modificada.
Observação
Expander pode ter um comportamento inesperado se for colocado dentro de ListView ou CollectionView. No entanto, pode ser controlado com a implementação personalizada definindo public Action<TappedEventArgs>? HandleHeaderTapped { get; set; }. Esta ação é executada sempre que o cabeçalho é tocado. Por favor, preste atenção, ao alterar esta ação pode receber comportamentos diferentes em CollectionView e ListView em todas as plataformas.
Utilização básica
Os exemplos seguintes mostram como utilizar a vista Expander definindo a propriedade Header como um controlo Label e a Content como HorizontalStackLayout com um Image e um Label no interior.
XAML
Incluindo o namespace XAML
Para usar o kit de ferramentas em XAML, a seguinte xmlns precisa ser adicionada à sua página ou vista.
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Por conseguinte, o seguinte:
<ContentPage
x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
</ContentPage>
Seria modificado para incluir o xmlns da seguinte forma:
<ContentPage
x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">
</ContentPage>
Utilizar o expansor
O exemplo seguinte mostra como adicionar uma Expander vista em XAML.
<toolkit:Expander>
<toolkit:Expander.Header>
<Label Text="Baboon"
FontAttributes="Bold"
FontSize="Medium" />
</toolkit:Expander.Header>
<HorizontalStackLayout Padding="10">
<Image Source="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Papio_anubis_%28Serengeti%2C_2009%29.jpg/200px-Papio_anubis_%28Serengeti%2C_2009%29.jpg"
Aspect="AspectFill"
HeightRequest="120"
WidthRequest="120" />
<Label Text="Baboons are African and Arabian Old World monkeys belonging to the genus Papio, part of the subfamily Cercopithecinae."
FontAttributes="Italic" />
</HorizontalStackLayout>
</toolkit:Expander>
C#
O exemplo seguinte mostra como adicionar uma Expander vista em C#.
using CommunityToolkit.Maui.Views;
var expander = new Expander
{
Header = new Label
{
Text = "Baboon",
FontAttributes = FontAttributes.Bold,
FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label))
}
};
expander.Content = new HorizontalStackLayout
{
Padding = new Thickness(10),
Children =
{
new Image
{
Source = "http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Papio_anubis_%28Serengeti%2C_2009%29.jpg/200px-Papio_anubis_%28Serengeti%2C_2009%29.jpg",
Aspect = Aspect.AspectFill,
HeightRequest = 120,
WidthRequest = 120
},
new Label
{
Text = "Baboons are African and Arabian Old World monkeys belonging to the genus Papio, part of the subfamily Cercopithecinae.",
FontAttributes = FontAttributes.Italic
}
}
};
Marcação em C#
using CommunityToolkit.Maui.Views;
Content = new Expander
{
Header = new Label()
.Text("Baboon")
.Font(bold: true, size: 18),
Content = new HorizontalStackLayout
{
new Image()
.Source("http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Papio_anubis_%28Serengeti%2C_2009%29.jpg/200px-Papio_anubis_%28Serengeti%2C_2009%29.jpg")
.Size(120)
.Aspect(Aspect.AspectFill),
new Label()
.Text("Baboons are African and Arabian Old World monkeys belonging to the genus Papio, part of the subfamily Cercopithecinae.")
.Font(italic: true)
}.Padding(10)
}.CenterHorizontal();
Propriedades
| Propriedade | Tipo | Description |
|---|---|---|
Command |
ICommand |
É executado quando o cabeçalho Expander é premido. |
CommandParameter |
object |
O parâmetro que é passado para Command. |
Direction |
ExpandDirection |
Define a direção do expansor. |
Content |
IView? |
Define o conteúdo a ser exibido quando o Expander expande. |
Header |
IView? |
Define o conteúdo do cabeçalho. |
IsExpanded |
bool |
Determina se o Expander é expandido. Esta propriedade utiliza o TwoWay modo de ligação, e tem um valor padrão de false. |
A ExpandDirection enumeração define os seguintes membros:
| Value | Description |
|---|---|
Down |
Indica que o Expander conteúdo está sob o cabeçalho. |
Up |
Indica que o Expander conteúdo está acima do cabeçalho. |
O controlo Expander define também um evento ExpandedChanged que é acionado quando o cabeçalho Expander é tocado.
ExpandedChangedEventArgs
Argumento de evento que contém ExpanderIsExpanded estado.
Propriedades
| Propriedade | Tipo | Description |
|---|---|---|
| IsExpanded | bool |
Determina se o Expander é expandido. |
Exemplos
Você pode encontrar um exemplo desse recurso em ação no .NET MAUI Community Toolkit Sample Application.
API
Você pode encontrar o código-fonte para Expander no repositório GitHub do .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit