Xamarin.Form预览器:渲染控件时发生异常

时间:2018-04-04 09:35:18

标签: c# xaml xamarin styles

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

错误消息

enter image description here

的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>

3 个答案:

答案 0 :(得分:2)

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

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

顺便说一句,Xamarin.Forms预览器是一个痛苦的**。您修复后的错误消息可能会在您修复后消失。我不得不做一个完整的清洁&amp;重建,然后打开另一个页面的预览器,关闭它并再次打开它我想要的页面显示任何内容。

最好不要使用它。

答案 1 :(得分:1)

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

        public App()
    {
        InitializeComponent();

        if (DesignMode.IsDesignModeEnabled)
        {
            return;
        }

    // connect to database code here

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

答案 2 :(得分:0)

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

立即为我解决了这个问题。

祝你好运!