XAML 미리 보기에서 사용자 지정 컨트롤 렌더링
XAML 미리 보기에서 사용자 지정 컨트롤이 예상대로 작동하지 않는 경우가 있습니다. 이 문서의 지침을 사용하여 사용자 지정 컨트롤 미리 보기의 제한 사항을 이해합니다.
Warning
XAML 미리 보기는 Visual Studio 2019 버전 16.8 및 Mac용 Visual Studio 버전 8.8에서 더 이상 사용되지 않으며 Visual Studio 2019 버전 16.9 및 Mac용 Visual Studio 버전 8.9의 XAML 핫 다시 로드 기능으로 대체되었습니다. 설명서에서 XAML 핫 다시 로드 대해 자세히 알아봅니다.
기본 미리 보기 모드
프로젝트를 빌드하지 않은 경우에도 XAML 미리 보기에서 페이지를 렌더링합니다. 빌드할 때까지 코드 숨김을 사용하는 모든 컨트롤은 기본 Xamarin.Forms 형식을 표시합니다. 프로젝트가 빌드되면 XAML 미리 보기에서 디자인 타임 렌더링을 사용하도록 설정된 사용자 지정 컨트롤을 표시하려고 합니다. 렌더링이 실패하면 기본 Xamarin.Forms 형식이 표시됩니다.
사용자 지정 컨트롤에 디자인 타임 렌더링 사용
사용자 고유의 사용자 지정 컨트롤을 만들거나 타사 라이브러리의 컨트롤을 사용하는 경우 미리 보기에서 컨트롤을 잘못 표시할 수 있습니다. 사용자 지정 컨트롤은 컨트롤을 작성하거나 라이브러리에서 가져왔는지 여부에 관계없이 미리 보기에 표시되도록 시간 렌더링을 디자인하도록 옵트인해야 합니다. 만든 컨트롤을 사용하여 컨트롤의 클래스에 추가하여 [DesignTimeVisible(true)]
미리 보기에 표시합니다.
namespace MyProject
{
[DesignTimeVisible(true)]
public class MyControl : BaseControl
{
// Your control's code here
}
}
예로 제임스 몬테마그노의 ImageCirclePlugin의 기본 클래스를 사용합니다.
SkiaSharp 컨트롤
현재 SkiaSharp 컨트롤은 iOS에서 미리 보는 경우에만 지원됩니다. Android 미리 보기에서는 렌더링되지 않습니다.
문제 해결
Xamarin.Forms 버전 확인
3.6개 이상이 Xamarin.Forms 설치되어 있는지 확인합니다. NuGet에서 버전을 업데이트할 Xamarin.Forms 수 있습니다.
[DesignTimeVisible(true)]
사용자 지정 컨트롤이 제대로 렌더링되지 않습니다.
코드 숨김 또는 백 엔드 데이터에 크게 의존하는 사용자 지정 컨트롤이 XAML 미리 보기에서 항상 작동하지는 않습니다. 다음 작업을 시도할 수 있습니다.
- 디자인 모드를 사용하는 경우 초기화되지 않도록 컨트롤 이동
- 백 엔드에서 가짜 데이터를 표시하도록 디자인 타임 데이터 설정
XAML 미리 보기에는 "사용자 지정 컨트롤이 제대로 렌더링되지 않음" 오류가 표시됩니다.
프로젝트를 클린 다시 빌드하거나 XAML 파일을 닫고 다시 열어 보세요.