Я пытаюсь создать пользовательскую кнопку с некоторым дополнительным поведением, которое происходит от стандартного класса 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>
Это приводит к следующему:
Таким образом, Button
отображается с зеленым фоном, красной рамкой и красным цветом текста.uikit:SimpleCustomButton
отображается с зеленым фоном, красной рамкой и стандартным синим цветом текста.
Итак, мой главный вопрос:
Почему только некоторые из стилейсвойства, примененные к uikit:SimpleCustomButton
, производным от Button
, но все они к нормальному Button
.