XAML共享资源
本文关键字:共享资源 XAML | 更新日期: 2023-09-27 18:06:24
我正在尝试实现等价于CSS样式的XAML。我想创建一个自定义布局的ContentPage,我可以使用在我的应用程序的所有页面,并将有不同的值为每个平台。
特别是我开始自定义填充:我试图把这个代码在我的App.xaml文件:
<Application.Resources>
<ResourceDictionary>
<OnPlatform x:Key="MyPadding"
x:TypeArguments="Thickness"
iOS="0, 20, 0, 0"
Android="0, 0, 0, 0"/>
<Style
x:Key="labelGreen"
TargetType="Entry">
<Setter
Property="TextColor"
Value="Green"/>
</Style>
</ResourceDictionary>
</Application.Resources>
在单独的ContentPage中,我正在做以下操作,但它不起作用:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.LoginScreen"
Style="{DynamicResource MyPadding}"
>
自定义条目样式工作良好。但是填充物没有。我得到的错误:"SetValue:不能转换Xamarin.Forms. onplatform ' 1[Xamarin.Forms. onplatform]。>
我做错了什么?
正如error所说,Thickness
不是Style
。改为:
<Application.Resources>
<ResourceDictionary>
<OnPlatform x:Key="MyPadding"
x:TypeArguments="Thickness"
iOS="0, 20, 0, 0"
Android="0, 0, 0, 0"/>
<Style
x:Key="pageStyle"
TargetType="ContentPage">
<Setter
Property="Padding"
Value="{StaticResource MyPadding}"/>
</Style>
<Style
x:Key="labelGreen"
TargetType="Entry">
<Setter
Property="TextColor"
Value="Green"/>
</Style>
</ResourceDictionary>
</Application.Resources>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.LoginScreen"
Style="{StaticResource pageStyle}">
或
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.LoginScreen"
Padding="{StaticResource MyPadding}">