我正在使用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" />
答案 0 :(得分:5)
在将App类转换为基于XAML的情况下,您似乎错过了构造函数中的InitializeComponent();
调用。
答案 1 :(得分:2)
我想你忘记添加InitializeComponent();在你的App.cs中。当你有一个xaml代码时,你必须调用InitializeComponent();在构造函数中。
答案 2 :(得分:1)
你实际上需要在Style中设置BackgroundColor以使BorderColor工作。
From the Button.BorderColor Documentation
如果Button.BorderWidth设置为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}" />
这适合我。
编辑: Example Project