Visão geral do calendário Blazor
O componente Ignite UI for Blazor Calendar é leve e fácil de configurar. Ele é usado para mostrar datas e dias da semana. Também é a melhor maneira de fornecer visualizações mensais ou anuais para usuários finais. O controle Ignite UI for Blazor Calendar permite que você restrinja os intervalos de datas mínimo e máximo pelos quais as pessoas podem navegar.
O Ignite UI para o Ignite UI for Blazor Calendar fornece uma maneira fácil e intuitiva de exibir informações de data. Ele reúne diferentes recursos, como modos de seleção de data única ou múltipla, destacar e selecionar intervalo de datas, navegação pelo teclado, habilitar números de semana, opções de tamanho e espaçamento e muito mais.
Blazor Calendar Example
O exemplo do componente Blazor IgbCalendar
a seguir mostra um calendário básico com um modo de seleção de dia único. Veja como ele funciona ou inspecione o código por trás.
How To Create a Calendar in Blazor with Ignite UI
Antes de usar o IgbCalendar
, você precisa registrá-lo da seguinte forma:
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbCalendarModule));
Você também precisará vincular um arquivo CSS adicional para aplicar o estilo ao componente Ignite UI for Blazor IgbCalendar
. O seguinte precisa ser colocado no arquivo wwwroot/index.html em um projeto Blazor Web Assembly ou no arquivo Pages/_Host.cshtml em um projeto Blazor Server:
<link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />
Para uma introdução completa à Ignite UI for Blazor, leia o tópico Introdução.
A maneira mais simples de começar a usar a Ignite UI for Blazor IgbCalendar
é a seguinte:
<IgbCalendar />
Selection Modes
Os usuários podem escolher entre três modos de seleção diferentes - seleção única, seleção múltipla ou seleção de intervalo. Por padrão, a Ignite UI for Blazor IgbCalendar
está usando o modo de seleção única, mas você pode alterá-lo definindo a propriedade Selection
conforme mostrado neste exemplo.
<IgbCalendar Selection="@CalendarBaseSelection.Multiple" />
Range Selection
Seguindo a mesma abordagem, podemos alternar Selection
para o modo de intervalo:
<IgbCalendar Selection="@CalendarBaseSelection.Range" />
Active View and Date
O componente Ignite UI for Blazor Calendar permite alternar entre três visualizações diferentes: dias, meses e anos. A propriedade ActiveView
do componente reflete a visualização atual. Por padrão, o Calendar exibe a data atual quando carregado inicialmente. Você pode modificar isso definindo a propriedade ActiveDate
. A propriedade ActiveDate
também reflete as alterações da data visível no momento feitas pelo usuário final.
Week numbers
Você pode usar a propriedade ShowWeekNumbers
para mostrar os números da semana do componente Calendar. Você pode fazer isso usando seu atributo booleano correspondente show-week-numbers
assim:
<IgbCalendar ShowWeekNumbers="true" />
A demonstração a seguir ilustra um calendário com números de semana habilitados:
Multiple Months
Usando a propriedade VisibleMonths
, você pode exibir mais de um mês quando o Calendário estiver na visualização de days
. Quando vários meses são exibidos, você pode configurar se deseja empilhá-los verticalmente ou horizontalmente usando a propriedade Orientation
. Por padrão, a propriedade Orientation
é definida como horizontal
.
O Calendário exibe datas iniciais e finais dos meses anteriores e seguintes. Você pode ocultar essas datas definindo a propriedade HideOutsideDays
como true ou usando seu atributo booleano correspondente HideOutsideDays
.
<IgbCalendar VisibleMonths="2" HideOutsideDays="true" />
O exemplo a seguir demonstra a configuração de vários meses:
Tamanho
Você pode controlar o tamanho e o espaçamento dos elementos internos do calendário usando a variável CSS--ig-size
. O tamanho padrão do componente é grande.
Eventos
O componente Calendar emite o evento Change
quando as datas selecionadas são alteradas pelo usuário final. Você pode assinar o evento assim:
<IgbCalendar Change="@OnCalendarChange" />
@code {
public void OnCalendarChange(IgbComponentDataValueChangedEventArgs args)
{
}
}
Navegação pelo teclado
Se você navegar pela página usando a tecla Tab, lembre-se de que, com base nas recomendações de acessibilidade do W3, o IgbCalendar
introduz as seguintes paradas de tabulação:
- Botão de seleção de mês
- Botão de seleção de ano
- Botão anterior
- Botão Avançar
- Elemento de data ativo
Quando um dia/mês/ano no componente IgbCalendar
estiver focado, use:
- Tecla PageUp para mover para a página do mês/ano/anos anterior.
- Tecla PageDown para mover para a próxima página do mês/ano/anos.
- Tecla Home para focar o primeiro dia do mês atual/primeiro mês em exibição/primeiro ano em exibição.
- Tecla End para focar o último dia do mês atual/último mês em exibição/último ano em exibição.
- Teclas de seta para navegar pelos dias/meses/anos. Navegar antes do primeiro item e depois do último item alternará a visualização para a página do mês/ano/anos seguinte/anterior.
Quando um dia dentro da visualização days
estiver focado, use:
- Teclas Shift + PageUp para ir para o ano anterior.
- Teclas Shift + PageDown para avançar para o próximo ano.
- Pressione a tecla Espaço ou Enter para selecionar o dia em foco no momento.
Quando um mês dentro da visualização months
estiver em foco, use:
- Pressione a tecla Espaço ou Enter para alterar o
ActiveDate
para o mês em foco no momento e alternar para a visualizaçãodays
.
Quando um ano dentro da visualização years
estiver focado, use:
- Pressione a tecla Espaço ou Enter para alterar o
ActiveDate
para o ano em foco no momento e alternar para a visualizaçãomonths
.
Quando os botões anterior ou seguinte (no subtítulo) estiverem em foco, use:
- Tecla de espaço ou Enter para alternar para a página do mês/ano/anos anterior/seguinte.
Quando o botão do mês (no subtítulo) estiver em destaque, use:
- Pressione a tecla Espaço ou Enter para alternar para a visualização
months
.
Quando o botão do ano (no subtítulo) estiver em foco, use:
- Pressione a tecla Espaço ou Enter para alternar para a visualização
years
.
Styling
The IgbCalendar
component exposes CSS parts for almost all of its inner elements. The following table lists all of the exposed CSS parts:
Nome | Descrição |
---|---|
header |
O elemento de cabeçalho. |
header-title |
O elemento de título do cabeçalho. |
header-date |
O elemento de data do cabeçalho. |
content |
O elemento de conteúdo que contém as visualizações e os elementos de navegação. |
navigation |
O elemento do contêiner de navegação. |
months-navigation |
O elemento do botão de navegação dos meses. |
years-navigation |
O elemento do botão de navegação de anos. |
years-range |
O elemento de intervalo de anos. |
navigation-buttons |
O contêiner de botões de navegação. |
navigation-button |
Botão de navegação anterior/próximo. |
days-view-container |
O elemento contêiner de visualização de dias. |
days-view |
Elemento de visualização de dias. |
months-view |
O elemento de visualização de meses. |
years-view |
O elemento de visualização de anos. |
days-row |
Elemento da linha Days. |
label |
Elemento de rótulo do cabeçalho da semana. |
week-number |
Elemento do número da semana. |
week-number-inner |
Elemento interno do número da semana. |
date |
Elemento de data. |
date-inner |
Elemento interno de data. |
first |
O primeiro elemento de data selecionado. |
last |
O último elemento de data selecionado. |
inactive |
Elemento de data inativo. |
hidden |
Elemento de data oculto. |
weekend |
Elemento de data de fim de semana. |
range |
Intervalo do elemento selecionado. |
special |
Elemento de data especial. |
disabled |
Elemento de data desabilitado. |
single |
Elemento de data selecionado individualmente. |
preview |
Elemento de data de pré-visualização da seleção de intervalo. |
month |
Elemento mês. |
month-inner |
Elemento interno do mês. |
year |
Elemento ano. |
year-inner |
Ano elemento interno. |
selected |
Indica o estado selecionado. Aplica-se a elementos de data, mês e ano. |
current |
Indica o estado atual. Aplica-se a elementos de data, mês e ano. |
Using these CSS parts we can customize thе appearance of the IgbCalendar
component like this:
igc-calendar::part(date-inner selected),
igc-calendar::part(month-inner selected),
igc-calendar::part(year-inner selected),
igc-calendar::part(month-inner selected):focus,
igc-calendar::part(year-inner selected):focus {
background: var(--ig-primary-500);
border-color: var(--ig-primary-800);
}
igc-calendar::part(date-inner selected):hover,
igc-calendar::part(month-inner selected):hover,
igc-calendar::part(year-inner selected):hover {
background: var(--ig-primary-500);
border-color: var(--ig-primary-800);
}
igc-calendar::part(label),
igc-calendar::part(navigation-button),
igc-calendar::part(months-navigation):hover,
igc-calendar::part(months-navigation):focus,
igc-calendar::part(years-navigation):hover,
igc-calendar::part(years-navigation):focus {
color: var(--ig-primary-300);
}
igc-calendar::part(navigation-button):hover,
igc-calendar::part(navigation-button):focus {
color: var(--ig-primary-800);
}
O exemplo a seguir demonstra a configuração CSS acima:
API References
IgbCalendar
IgbRadio
IgbRadioGroup
ActiveDate
ActiveView
IgbDateRangeDescriptor
DateRange
Styling & Themes