在 XAML 预览器中呈现自定义控件

自定义控件有时在 XAML 预览器中无法按预期工作。 使用本文中的指南了解预览自定义控件的限制。

警告

XAML 预览器已在 Visual Studio 2019 版本 16.8 和 Visual Studio for Mac 版本 8.8 中弃用,并替换为 Visual Studio 2019 版本 16.9 和 Visual Studio for Mac 版本 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
  }

}

James Montemagno 的 ImageCirclePlugin 基类 为例。

SkiaSharp 控件

目前,仅在 iOS 上预览时才支持 SkiaSharp 控件。 它们不会在 Android 预览中呈现。

疑难解答

检查 Xamarin.Forms 版本

请确保至少已安装 Xamarin.Forms 3.6。 可以在 NuGet 上更新 Xamarin.Forms 版本。

即使在 [DesignTimeVisible(true)] 的情况下,我的自定义控件也未正确呈现。

严重依赖于代码隐藏或后端数据的自定义控件并不总能在 XAML 预览器中运行。 你可以尝试:

XAML 预览器显示错误“自定义控件未正确呈现”

尝试清理并重新生成项目,或者关闭并重新打开 XAML 文件。