Xamarin XAML ResourceDictionary导致Null Reference ex

时间:2016-08-19 14:50:38

标签: xaml xamarin.forms prism resourcedictionary

想要在XAML中为我的标签添加样式我偶然发现了Xamarin Developer Guides

在那里,他们使用绑定到ContentPage.Resources的ResourceDictionary。我试图模仿这个,编译好后应用程序启动并给我一个NullReferenceException。

我试图将字典添加到Grid.Resources,我得到了相同的异常。

我将Xamarin.Forms v2.3.1.114与Prism.Forms v6.2一起使用我不知道其中哪一个导致了这个问题,或者它是否是由其他东西共同造成的。

这是我的XAML:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
         prism:ViewModelLocator.AutowireViewModel="True"
         x:Class="BetulaApp.Views.MainPage"
         Title="MainPage">

  <ContentPage.Resources>
    <ResourceDictionary>
      <Style x:Key="TitleStyle" TargetType="Label">
        <Setter Property="VerticalAlignment" Value="Center" />
        <Setter Property="FontSize" Value="30" />
        <Setter Property="FontAttributes" Value="Bold" />
        <Setter Property="Margin" Value="0,20,0,20" />
      </Style>
    </ResourceDictionary>
  </ContentPage.Resources>

  <Grid>
    <Label Text="{Binding Title}"
       Style="{StaticResource TitleStyle}" />
  </Grid>

</ContentPage>

对此事的任何帮助都会很棒!

[E1]添加了例外信息:

Exception Message

CallStack 不在加载的模块中。     [外部代码]

  

0x95 in Xamarin.Forms.Platform.Android.AppCompat.Platform.LayoutRootPage at C:\ BuildAgent \ work \ aad494dc9bc9783 \ Xamarin.Forms.Platform.Android \ AppCompat \ Platform.cs:279,5 C#

     

0x12在C:\ BuildAgent \ work \ aad494dc9bc9783 \ Xamarin.Forms.Platform.Android \ AppCompat \ Platform中的Xamarin.Forms.Platform.Android.AppCompat.Platform.Xamarin.Forms.Platform.Android.IPlatformLayout.OnLayout中。 cs:196,5 C#

     

0x20 in Xamarin.Forms.Platform.Android.PlatformRenderer.OnLayout at C:\ BuildAgent \ work \ aad494dc9bc9783 \ Xamarin.Forms.Platform.Android \ PlatformRenderer.cs:73,4 C#

     Android.Views.ViewGroup.n_OnLayout_ZIIII中的

0x12位于/Users/builder/data/lanes/3540/1cf254db/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android.Views。 ViewGroup.cs:3427,4 C#

2 个答案:

答案 0 :(得分:0)

感谢@nishantvodoo建议删除二传手。 我搞砸了,是导致错误的'VerticalAlignment'设置器。

答案 1 :(得分:0)

Xamarin.Forms没有VerticalAlignment的{​​{1}}属性,请尝试使用View