【问题标题】:Xamarin.Form Previewer : An Exception occurred while rendering the controlXamarin.Form Previewer:呈现控件时发生异常
【发布时间】:2018-09-13 19:29:34
【问题描述】:

我是 Xamarin 的新手。我想了解<Style> 标签。我有问题当我开始在App.xaml 文件上添加标签时,出现警告消息。我不知道我犯了什么错误。希望你们能帮我解决这个问题。提前谢谢。

错误信息

App.xaml

<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="TravelRecordApp.App">
    <Application.Resources>
        <!-- Application resource dictionary -->
        <ResourceDictionary>
            <Color x:Key="blueColor">#1E90FF</Color>
            <Color x:Key="whiteColor">#FFFFFF</Color>
            <Style>
                <Setter Property="BackgroundColor" Value="{StaticResource blueColor}" />
                <Setter Property="TextColor" Value="{StaticResource whiteColor}"/>
            </Style>
        </ResourceDictionary>

    </Application.Resources>
</Application>

【问题讨论】:

    标签: c# xaml xamarin styles


    【解决方案1】:

    Style 标记必须始终指定 TargetType。因此,例如,如果您的样式以标签为目标,则必须将代码更改为:

    <Style TargetType="Label">
        <Setter Property="BackgroundColor" Value="{StaticResource blueColor}" />
        <Setter Property="TextColor" Value="{StaticResource whiteColor}"/>
    </Style>
    

    顺便说一句,Xamarin.Forms 预览器在 a** 中是个痛点。即使您修复了它,您收到的错误消息也可能不会消失。我必须进行彻底的清理和重建,然后打开另一个页面的预览器,关闭它并为我想要的页面再次打开它,然后它才会显示任何内容。

    你最好不要使用它。

    【讨论】:

      【解决方案2】:

      另一个问题可能是 App() 构造函数中的 App.xaml.cs 中有一些代码也可能导致该问题。例如,我修复了我继承的一些试图连接到数据库的代码中的问题,所以我这样修复它:

              public App()
          {
              InitializeComponent();
      
              if (DesignMode.IsDesignModeEnabled)
              {
                  return;
              }
      
          // connect to database code here
      

      您可以使用 DesignMode.IsDesignModeEnabled 来确定您是在设计器中还是在其他地方运行。您可能还想检查 xaml.cs 文件中的构造函数,看看它们是否正在尝试运行任何会导致设计器也抛出该异常的代码。

      【讨论】:

      • 也适用于其他页面。
      【解决方案3】:

      如果有人对此仍有疑问,为我解决此问题的方法是转到我的 NuGet 包管理器并将 Xamarin Forms 更新到最新版本。

      立即为我解决了问题。

      祝你好运!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-02
        • 1970-01-01
        • 2018-05-26
        相关资源
        最近更新 更多