如何为Xamarin表单应用程序创建全局样式



我正在使用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}" />

这对我有用。

编辑:示例项目

相关内容

  • 没有找到相关文章

最新更新