ImageButton Drop Shadows на Android
Эта платформа Android используется для включения тени падения на платформе ImageButton
Android. Он используется в XAML, задав ImageButton.IsShadowEnabled
привязываемое свойство true
, а также ряд дополнительных необязательных привязываемых свойств, которые управляют тенью удаления:
<ContentPage ...
xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core">
<StackLayout Margin="20">
<ImageButton ...
Source="XamarinLogo.png"
BackgroundColor="GhostWhite"
android:ImageButton.IsShadowEnabled="true"
android:ImageButton.ShadowColor="Gray"
android:ImageButton.ShadowRadius="12">
<android:ImageButton.ShadowOffset>
<Size>
<x:Arguments>
<x:Double>10</x:Double>
<x:Double>10</x:Double>
</x:Arguments>
</Size>
</android:ImageButton.ShadowOffset>
</ImageButton>
...
</StackLayout>
</ContentPage>
Кроме того, его можно использовать из C# с помощью api fluent:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...
var imageButton = new Xamarin.Forms.ImageButton { Source = "XamarinLogo.png", BackgroundColor = Color.GhostWhite, ... };
imageButton.On<Android>()
.SetIsShadowEnabled(true)
.SetShadowColor(Color.Gray)
.SetShadowOffset(new Size(10, 10))
.SetShadowRadius(12);
Внимание
Тени перетаскивания рисуется как часть фона ImageButton
, и фон рисуется только в том случае, если BackgroundColor
свойство задано. Поэтому тень падения не будет вырисована, если ImageButton.BackgroundColor
свойство не задано.
Метод ImageButton.On<Android>
указывает, что эта платформа будет работать только в Android. Метод ImageButton.SetIsShadowEnabled
в Xamarin.Forms.PlatformConfiguration.AndroidSpecific
пространстве имен используется для управления включением тени падения в пространстве ImageButton
имен. Кроме того, можно вызвать следующие методы для управления тенью падения:
SetShadowColor
— задает цвет тени падения. Цвет по умолчанию —Color.Default
.SetShadowOffset
— задает смещение тени падения. Смещение изменяет направление отбрасывания тени и указывается в качествеSize
значения.Size
Значения структуры выражаются в единицах, независимых от устройства, с первым значением является расстояние слева (отрицательное значение) или справа (положительное значение), а второе — расстояние выше (отрицательное значение) или ниже (положительное значение). Значение по умолчанию этого свойства — (0.0, 0.0), что приводит к тому, что тень создается вокруг каждойImageButton
стороны.SetShadowRadius
— задает радиус размытия, используемый для отрисовки тени падения. Значение радиуса по умолчанию — 10,0.
Примечание.
Состояние тени перетаскивания можно запрашивать, вызывая GetIsShadowEnabled
методы , GetShadowColor
GetShadowOffset
и GetShadowRadius
методы.
Результатом является то, что тени падения можно включить в ImageButton
: