Ignite UI for Blazor 시각적으로 풍부한 프레젠테이션에 텍스트, 이미지, 아이콘 및 버튼을 표시하여 더 자세한 정보에 대한 진입점으로 활용할 수 있습니다. 카드를 사용하여 멀티미디어 대시보드를 만들 수 있습니다.
Blazor Card Example
EXAMPLE
MODULES
RAZOR
CSS
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modulesnamespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbButtonModule),
typeof(IgbCardModule),
typeof(IgbIconModule),
typeof(IgbIconButtonModule),
typeof(IgbRippleModule)
);
await builder.Build().RunAsync();
}
}
}cs
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbCardModule));
razor
IgbCard 구성 요소에 스타일을 적용하려면 추가 CSS 파일을 연결해야 합니다. 다음은 Blazor Web Assembly 프로젝트의 wwwroot/index.html 파일이나 Blazor Server 프로젝트의 Pages/_Host.cshtml 파일에 배치해야 합니다.
Ignite UI for Blazor에 대한 전체 소개를 보려면 시작하기 항목을 읽어보세요.
그런 다음 데모 카드 템플릿을 나타내기 위해 다음 코드를 추가할 수 있습니다.
<IgbCard><IgbCardMedia><imgsrc="https://images.unsplash.com/photo-1518235506717-e1ed3306a89b?ixlib=rb-1.2.1&auto=format&fit=crop&w=640&q=50"></IgbCardMedia><IgbCardHeader><h3slot="title">New York City</h3><h5slot="subtitle">City in New York</h5></IgbCardHeader><IgbCardContent><p>New York City comprises 5 boroughs sitting where the
Hudson River meets the Atlantic Ocean. At its core is Manhattan,
a densely populated borough that's among the world's major commercial,
financial and cultural centers.</p></IgbCardContent><IgbCardActions><IgbButtonslot="start"><IgbRipple />
Read more
</IgbButton><divslot="end"><IgbIconButtonname="twitter" ><IgbRipple /></IgbIconButton><IgbIconButtonname="facebook" ><IgbRipple /></IgbIconButton></div></IgbCardActions></IgbCard>razor
위에서 몇 가지 사항을 확인할 수 있습니다. 첫째, 우리가 원할 때 꼬리표 헤더 제목과 같은 요소 h3 제목 사이에 배치합니다. IgbCardHeader 태그를 지정하고 슬롯 이름을 다음으로 설정합니다. title. 반대로, 다른 제목 요소를 subtitle 슬롯 이름을 지정하겠습니다. subtitle.
카드에 표시하려는 이미지나 비디오는 IgbCardMedia 태그 안에 포함됩니다. IgbCardMedia 사용하면 요소의 전체 콘텐츠 상자를 채우는 동안 가로 세로 비율을 유지하도록 내부에 배치된 콘텐츠의 크기를 조정할 수 있습니다. 개체의 가로 세로 비율이 상자의 가로 세로 비율과 일치하지 않으면 개체가 맞게 잘립니다.
IgbCardContent 태그 안에 무엇이든 넣을 수 있습니다. 일반적으로 텍스트가 거기로 이동합니다.
카드에는 설정된 경우 카드에서 그림자를 제거하고 얇은 테두리로 대체하여 카드를 배경과 분리하는 outlined 속성이 있습니다.
Horizontal Layout
기본적으로 카드의 모든 섹션(헤더, 콘텐츠, 미디어, 작업)은 수직으로 배치됩니다. 수직 공간이 많을 때 좋습니다. 카드의 섹션을 수평으로 배치하고 싶다고 가정해 보겠습니다. 간단한 CSS를 사용하여 이러한 레이아웃을 구현할 수 있습니다.
다음은 윤곽선이 있는 가로 카드의 예입니다.
<IgbCard><divclass="card-horizontal"><div><IgbCardHeader><imgslot="thumbnail"src="ROZES-Under-the-Grave.jpg" /><h5slot="title">Rozes</h5><h5slot="subtitle">Under the Grave (2016)</h5></IgbCardHeader><IgbCardContent><p>
As I have always said: I write what's real and what's true,
even if it means throwing myself under the bus.
</p></IgbCardContent></div><divclass="divider"></div><IgbCardActions><IgbIconButtonName="previous" /><IgbIconButtonName="play" /><IgbIconButtonName="next" /></IgbCardActions></div></IgbCard>razor
추가 div 요소를 사용하여 IgbCardHeader와 IgbCardContent 함께 묶고 수직 정렬을 유지하며.card-horizontal 클래스를 래핑 div 요소에 적용하여 카드의 두 섹션을 수평으로 정렬합니다.
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modulesnamespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbCardModule)
);
await builder.Build().RunAsync();
}
}
}cs
@using IgniteUI.Blazor.Controls<divclass="container sample"style="align-items: center"><divclass="card-wrapper"style="max-width: 25rem; min-width: 15.625rem;"><IgbCard><divclass="card-horizontal"style="display: flex; flex-direction: row; flex: 1 1 0%;"><div><IgbCardHeader><imgslot="thumbnail"src="https://static.infragistics.com/xplatform/images/music/rozes.jpg"width="64"height="64"/><h5slot="title">Rozes</h5><h5slot="subtitle">Under the Grave (2016)</h5></IgbCardHeader><IgbCardContent><p>
As I have always said: I write what's real and what's true,
even if it means throwing myself under the bus.
</p></IgbCardContent></div><divclass="divider"style="border-right: 1px solid darkgray;"></div><IgbCardActionsstyle="justify-content: center;"><spanclass="material-icons">skip_previous</span><spanclass="material-icons">play_arrow</span><spanclass="material-icons">skip_next</span></IgbCardActions></div></IgbCard></div></div>@code {}razor
/*
CSS styles are loaded from the shared CSS file located at:
https://static.infragistics.com/xplatform/css/samples/
*/css
다음은 카드의 모든 섹션이 수직으로 배치되고 IgbCardMedia 수직 섹션 옆에 나타나는 반수평 카드를 만드는 방법을 보여주는 예입니다.
<IgbCard><divclass="semi-horizontal"><div><IgbCardHeader><IgbAvatarslot="thumbnail"src/><h5slot="title">HERE</h5><h5slot="subtitle">by Mellow D</h5></IgbCardHeader><IgbCardContent><p>Far far away, behind the word mountains,
far from the countries Vokalia and Consonantia,
there live the blind texts.</p></IgbCardContent><IgbCardActions><IgbButton>Play Album</IgbButton></IgbCardActions></div><IgbCardMediaclass="card-media"><imgsrc="here_media.jpg" /></IgbCardMedia></div></IgbCard>razor
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modulesnamespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbAvatarModule),
typeof(IgbButtonModule),
typeof(IgbCardModule)
);
await builder.Build().RunAsync();
}
}
}cs
@using IgniteUI.Blazor.Controls<divclass="container vertical"style="align-items: center"><divclass="card-wrapper"style="max-width: 25rem; min-width: 15.625rem;"><IgbCard><divclass="semi-horizontal"style="display: flex; flex-direction: row; flex-grow: 1;"><div><IgbCardHeader><IgbAvatarSrc="https://static.infragistics.com/xplatform/images/music/singer_with_mic.jpg"slot="thumbnail"/><h5slot="title">HERE</h5><h5slot="subtitle">by Mellow D</h5></IgbCardHeader><IgbCardContent><p>Far far away, behind the word mountains,
far from the countries Vokalia and Consonantia,
there live the blind texts.</p></IgbCardContent><IgbCardActions><IgbButton>Play Album</IgbButton></IgbCardActions></div><IgbCardMediaclass="card-media"style="width: 6rem; min-width: 6rem;"><imgsrc="https://static.infragistics.com/xplatform/images/music/singer_female.jpg" /></IgbCardMedia></div></IgbCard></div></div>@code {}razor
/*
CSS styles are loaded from the shared CSS file located at:
https://static.infragistics.com/xplatform/css/samples/
*/css
Card Actions
카드 작업 영역에서는 이미 언급한 내용에 대한 추가 구성을 허용합니다.
슬롯 이름을 전환하여 텍스트 버튼과 아이콘 버튼의 순서를 바꿀 수 있습니다.
<IgbCardActions><IgbButtonslot="start"><IgbRipple />
Read more
</IgbButton><divslot="end"><IgbIconButtonname="twitter"><IgbRipple /></IgbIconButton><IgbIconButtonname="facebook" ><IgbRipple /></IgbIconButton></div></IgbCardActions>razor
이제 아이콘 버튼이 텍스트 버튼 앞에 나타납니다.
간단히 슬롯 속성을 생략하고 요소가 기본 슬롯으로 이동하도록 하여 그 사이에 더 많은 콘텐츠를 추가할 수도 있습니다.
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modulesnamespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbCardModule),
typeof(IgbIconButtonModule),
typeof(IgbIconModule),
typeof(IgbRippleModule)
);
await builder.Build().RunAsync();
}
}
}cs
/*
CSS styles are loaded from the shared CSS file located at:
https://static.infragistics.com/xplatform/css/samples/
*/css
Summary
이 글에서는 카드 구성 요소에 대해 많은 내용을 다루었습니다. 간단한 카드를 만들고 이미지를 추가하여 조금 더 매력적으로 만들었습니다. 아바타, 버튼, 아이콘과 같은 추가 Blazor 카드 내부에 사용하여 경험을 풍부하게 하고 기능을 추가했습니다. 마지막으로 빌딩 블록의 주요 색상을 변경하여 카드의 모양을 변경했습니다.