Стилизация пользовательского представления, производного от кнопки в формах Xamarin, не применяет цвет текста - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь создать пользовательскую кнопку с некоторым дополнительным поведением, которое происходит от стандартного класса Button.Это очень простой класс, для которого current определяется просто следующим образом:

public class SimpleCustomButton : Button
{
    public SimpleCustomButton()
    {
    }
}

Чтобы проверить это, я создал следующую страницу:

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="UIKit.TestPage"
             xmlns:uikit="clr-namespace:UIKit"
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core" 
             ios:Page.UseSafeArea="true">
    <ContentPage.Content>
        <StackLayout>
           <Button Text="GlobalStyling normalButton" HorizontalOptions="Center" VerticalOptions="Start"  />
           <uikit:SimpleCustomButton Text="GlobalStyling customButton" HorizontalOptions="Center" VerticalOptions="Start"  />
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

Я применил к нему следующий стиль, определяя его глобально в app.xaml:

<?xml version="1.0" encoding="utf-8"?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="UIKit.App"
             xmlns:uikit="clr-namespace:UIKit">
    <Application.Resources>
      <ResourceDictionary>
            <Style TargetType="Button">
                <Setter Property="TextColor" Value="Red" />
                <Setter Property="BackgroundColor" Value="Green" />
                <Setter Property="BorderColor" Value="Red" />
                <Setter Property="BorderRadius" Value="0" />
                <Setter Property="BorderWidth" Value="1" />
            </Style>

            <Style TargetType="uikit:SimpleCustomButton">
                <Setter Property="TextColor" Value="Red" />
                <Setter Property="BackgroundColor" Value="Green" />
                <Setter Property="BorderColor" Value="Red" />
                <Setter Property="BorderRadius" Value="0" />
                <Setter Property="BorderWidth" Value="1" />
            </Style>

        </ResourceDictionary>
    </Application.Resources>
</Application>

Это приводит к следующему:

The result running in the iOS simulator

Таким образом, Button отображается с зеленым фоном, красной рамкой и красным цветом текста.uikit:SimpleCustomButton отображается с зеленым фоном, красной рамкой и стандартным синим цветом текста.

Итак, мой главный вопрос:

Почему только некоторые из стилейсвойства, примененные к uikit:SimpleCustomButton, производным от Button, но все они к нормальному Button.

...