다음을 통해 공유


시작에 보조 타일 고정

이 항목에서는 Windows 앱의 보조 타일을 만들고 시작 메뉴에 고정하는 단계를 안내합니다.

보조 타일의 스크린샷

보조 타일에 대한 자세한 내용은 보조 타일 개요를 참조하세요.

네임스페이스 추가

Windows.UI.StartScreen 네임스페이스는 SecondaryTile 클래스를 포함합니다.

using Windows.UI.StartScreen;

보조 타일 초기화

보조 타일은 몇 가지 핵심 구성 요소로 이루어져 있습니다.

  • TileId: 여러 보조 타일 중에서 특정 타일을 식별할 수 있게 해 주는 고유 식별자입니다.
  • DisplayName: 타일에 표시할 이름입니다.
  • Arguments: 사용자가 타일을 클릭할 때 다시 앱으로 전달할 인수입니다.
  • Square150x150Logo: 필수 로고로, 중간 크기 타일에 표시되며 소형 로고가 제공되지 않을 경우 소형 크기 타일에 맞게 크기가 조정됩니다.

위의 모든 속성에 대한 초기화 값을 반드시 제공해야 합니다. 그렇지 않으면 예외가 발생합니다.

사용 가능한 다양한 생성자가 있지만 tileId, displayName, arguments, square150x150Logo, desiredSize를 이용하는 생성자를 사용하면 필요한 모든 속성을 설정할 수 있습니다.

// Construct a unique tile ID, which you will need to use later for updating the tile
string tileId = "City" + zipCode;

// Use a display name you like
string displayName = cityName;

// Provide all the required info in arguments so that when user
// clicks your tile, you can navigate them to the correct content
string arguments = "action=viewCity&zipCode=" + zipCode;

// Initialize the tile with required arguments
SecondaryTile tile = new SecondaryTile(
    tileId,
    displayName,
    arguments,
    new Uri("ms-appx:///Assets/CityTiles/Square150x150Logo.png"),
    TileSize.Default);

선택 사항: 큰 타일 크기에 대한 지원 추가

보조 타일에 풍부한 타일 알림을 표시하려는 경우 사용자가 더 많은 콘텐츠를 볼 수 있도록 타일을 더 넓게 또는 더 크게 크기를 조정할 수 있도록 허용해야 합니다.

와이드 및 큰 타일 크기를 사용하려면 Wide310x150LogoSquare310x310Logo를 제공해야 합니다. 가능하다면 작은 타일 크기에 대한 Square71x71Logo도 제공해야 합니다. 그렇지 않으면 작은 타일에 필요한 Square150x150Logo의 크기가 축소됩니다.

또한 알림이 있으면 오른쪽 아래 모서리에 선택적으로 표시되는 고유의 Square44x44Logo를 제공할 수 있습니다. 이 로고를 제공하지 않으면 기본 타일의 Square44x44Logo가 대신 사용됩니다.

// Enable wide and large tile sizes
tile.VisualElements.Wide310x150Logo = new Uri("ms-appx:///Assets/CityTiles/Wide310x150Logo.png");
tile.VisualElements.Square310x310Logo = new Uri("ms-appx:///Assets/CityTiles/Square310x310Logo.png");

// Add a small size logo for better looking small tile
tile.VisualElements.Square71x71Logo = new Uri("ms-appx:///Assets/CityTiles/Square71x71Logo.png");

// Add a unique corner logo for the secondary tile
tile.VisualElements.Square44x44Logo = new Uri("ms-appx:///Assets/CityTiles/Square44x44Logo.png");

선택 사항: 표시 이름을 표시하도록 설정

기본값으로 표시 이름은 표시되지 않습니다. 중간/와이드/큰 타일에 표시 이름을 표시하려면 다음 코드를 추가합니다.

// Show the display name on all sizes
tile.VisualElements.ShowNameOnSquare150x150Logo = true;
tile.VisualElements.ShowNameOnWide310x150Logo = true;
tile.VisualElements.ShowNameOnSquare310x310Logo = true;

선택 사항: 3D 보조 타일

3D 자산을 추가하여 Windows Mixed Reality를 위한 보조 타일을 개선할 수 있습니다. 사용자는 Mixed Reality 환경에서 앱을 사용할 때 시작 메뉴 대신 Windows Mixed Reality 홈에 직접 3D 타일을 배치할 수 있습니다. 예를 들어 360° 사진 뷰어 앱에 직접 연결되는 360° 광구를 만들거나 사용자가 선택한 경우 해당 객체의 가격 및 색상 옵션에 대한 세부 정보 페이지가 열리는 가구 카탈로그에서 의자의 3D 모델을 배치하도록 허용할 수 있습니다. 시작하려면, Mixed Reality 개발자 설명서를 참조하세요.

보조 타일 고정

마지막으로, 타일을 고정하라고 요청합니다. 이것은 UI 스레드에서 호출되어야 합니다. 타일을 고정할 것인지 사용자의 확인을 요청하는 대화 상자가 바탕 화면에 표시됩니다.

Important

데스크톱 브리지를 사용하는 데스크톱 애플리케이션인 경우 가장 먼저 데스크톱 앱에서 고정에 설명된 대로 추가 단계를 수행해야 합니다.

// Pin the tile
bool isPinned = await tile.RequestCreateAsync();

// TODO: Update UI to reflect whether user can now either unpin or pin

보조 타일이 있는지 확인

사용자가 이미 시작에 고정한 앱의 페이지를 방문할 경우 대신 “고정 해제” 단추를 표시해야 합니다.

따라서 표시할 단추를 선택할 때에는 보조 타일이 현재 고정되어 있는지 여부를 먼저 확인해야 합니다.

// Check if the secondary tile is pinned
bool isPinned = SecondaryTile.Exists(tileId);

// TODO: Update UI to reflect whether user can either unpin or pin

보조 타일 고정 해제

타일이 현재 고정되어 있고 사용자가 고정 해제 단추를 클릭한 경우 타일을 고정 해제(삭제)해야 합니다.

// Initialize a secondary tile with the same tile ID you want removed
SecondaryTile toBeDeleted = new SecondaryTile(tileId);

// And then unpin the tile
await toBeDeleted.RequestDeleteAsync();

보조 타일 업데이트

로고, 표시 이름, 보조 타일의 다른 항목을 업데이트해야 하는 경우 RequestUpdateAsync를 사용합니다.

// Initialize a secondary tile with the same tile ID you want to update
SecondaryTile tile = new SecondaryTile(tileId);

// Assign ALL properties, including ones you aren't changing

// And then update it
await tile.UpdateAsync();

고정된 모든 보조 타일 열거

사용자가 고정한 모든 타일을 검색해야 하는 경우 SecondaryTile.Exists를 사용하는 대신 SecondaryTile.FindAllAsync()를 사용할 수 있습니다.

// Get all secondary tiles
var tiles = await SecondaryTile.FindAllAsync();

타일 알림 보내기

타일 알림을 통해 타일에 다양한 콘텐츠를 표시하는 방법을 알아보려면 로컬 타일 알림 보내기를 참조하세요.