主题
Xamarin.Forms主题在Evolve 2016上公布,可作为客户预览尝试并提供反馈。
通过添加Xamarin.Forms.Theme.Base Nuget包,加上一个定义特定主题(例如Xamarin.Forms.Theme.Light)的附加包,还可以将一个主题添加到Xamarin.Forms应用程序中,否则本地主题可以为应用程序定义。
有关如何将它们添加到应用程序的说明,请参阅Light主题和Dark主题页面,或查看 示例自定义主题。
重要信息:您还应该 通过向iOS 和Android 添加一些样板代码,按照步骤加载主题程序集(如下所示)。这将在未来的预览版本中得到改进。AppDelegate
MainActivity
控制外观
在光与暗的主题都定义的标准控件特定的视觉外观。一旦将主题添加到应用程序的资源字典中,标准控件的外观就会改变。
以下XAML标记显示了一些常见的控件:
<StackLayout Padding="40">
<Label Text="Regular label" />
<Entry Placeholder="type here" />
<Button Text="OK" />
<BoxView Color="Yellow" />
<Switch />
</StackLayout>
这些截图显示了以下控件:
- 没有应用主题
- 光主题(只有微妙的差异,没有主题)
- 黑暗的主题
的styleClass
该StyleClass
属性允许根据主题提供的定义来更改视图的外观。
在光与暗的主题都定义了三种不同的外观BoxView
:HorizontalRule
,Circle
,和Rounded
。这个标记显示了三种不同BoxView
的不同样式类:
<StackLayout Padding="40">
<BoxView StyleClass="HorizontalRule" />
<BoxView StyleClass="Circle" />
<BoxView StyleClass="Rounded" />
</StackLayout>
这样做的光线和暗度如下:
内置课程
除了自动设置通用控件之外,Light and Dark主题目前还支持以下可以通过设置StyleClass
这些控件来应用的类:
BoxView中的
- 了HorizontalRule
- 圈
- 圆角
图片
- 圈
- 圆角
- 缩略图
按键
- 默认
- 主
- 成功
- 信息
- 警告
- 危险
- 链接
- 小
- 大
标签
- 头
- 副标题
- 身体
- 链接
- 逆
故障排除
无法加载文件或程序集“Xamarin.Forms.Theme.Light”或其一个依赖项
在预览版本中,主题可能无法在运行时加载。将相关项目中的代码添加到相应的项目中以解决此错误。
iOS版
在AppDelegate.cs中添加以下行LoadApplication
var x = typeof(Xamarin.Forms.Themes.DarkThemeResources);
x = typeof(Xamarin.Forms.Themes.LightThemeResources);
x = typeof(Xamarin.Forms.Themes.iOS.UnderlineEffect);
Android的
在MainActivity.cs中添加以下行LoadApplication
var x = typeof(Xamarin.Forms.Themes.DarkThemeResources);
x = typeof(Xamarin.Forms.Themes.LightThemeResources);
x = typeof(Xamarin.Forms.Themes.Android.UnderlineEffect)
;