我正在使用xamarin Studio在Mac机器上使用PCL创建我的第一个xamarin表单应用程序。我读了很多为应用程序创建全局样式的文章,但我无法访问App.xaml.cs文件中声明的样式,也无法访问应用程序中的任何文件。我在下面提到了我使用的代码。或者,如果有人有其他选择,让它变得容易或无论如何可能,请建议我。提前谢谢。
App.xaml.cs-
<Application xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="DinePerfect.App">
<Application.Resources>
<ResourceDictionary>
<Style x:Key="btnStyle" TargetType="Button">
<Setter Property="HorizontalOptions" Value="Center" />
<Setter Property="VerticalOptions" Value="CenterAndExpand" />
<Setter Property="BorderColor" Value="Lime" />
<Setter Property="BorderRadius" Value="5" />
<Setter Property="BorderWidth" Value="5" />
<Setter Property="WidthRequest" Value="200" />
<Setter Property="TextColor" Value="Teal" />
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
调用其他文件中的样式-
<Button Text="Login" Style="{StaticResource btnStyle} TextColor="Black" BackgroundColor="#9C661F" Clicked="btnLoginClicked" />
在将应用程序类转换为基于XAML时,似乎错过了构造函数中的InitializeComponent();
调用。
我想您忘了添加InitializeComponent();当你有一个xaml代码时,你必须调用InitializeComponent();在构造函数中。
实际上,您还需要在样式中设置BackgroundColor才能使BorderColor工作。
从按钮BorderColor文档
如果Button.BolderWidth设置为0,则此属性无效。在Android上,除非VisualElement.BackgroundColor设置为非默认颜色,否则此属性不会产生效果。
样式:
<ResourceDictionary>
<Style x:Key="btnStyle" TargetType="Button">
<Setter Property="HorizontalOptions" Value="Center" />
<Setter Property="VerticalOptions" Value="CenterAndExpand" />
<Setter Property="BackgroundColor" Value="Black" />
<Setter Property="BorderColor" Value="Lime" />
<Setter Property="BorderRadius" Value="5" />
<Setter Property="BorderWidth" Value="5" />
<Setter Property="WidthRequest" Value="200" />
<Setter Property="TextColor" Value="Teal" />
</Style>
</ResourceDictionary>
Xaml:中的用法
<Button Text="Login" Style="{StaticResource btnStyle}" />
这对我有用。
编辑:示例项目