想要在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]添加了例外信息:
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#
答案 0 :(得分:0)
感谢@nishantvodoo建议删除二传手。 我搞砸了,是导致错误的'VerticalAlignment'设置器。
答案 1 :(得分:0)
Xamarin.Forms没有VerticalAlignment
的{{1}}属性,请尝试使用View
。