Picker completed
This commit is contained in:
@@ -160,22 +160,32 @@ public partial class PickerHandler : ViewHandler<IPicker, SkiaPicker>
|
||||
{
|
||||
handler.PlatformView.FontSize = font.Size;
|
||||
}
|
||||
|
||||
// Map FontAttributes from the Font weight
|
||||
var attrs = FontAttributes.None;
|
||||
if (font.Weight >= FontWeight.Bold)
|
||||
attrs |= FontAttributes.Bold;
|
||||
handler.PlatformView.FontAttributes = attrs;
|
||||
|
||||
handler.PlatformView.Invalidate();
|
||||
}
|
||||
|
||||
public static void MapCharacterSpacing(PickerHandler handler, IPicker picker)
|
||||
{
|
||||
// Character spacing could be implemented with custom text rendering
|
||||
if (handler.PlatformView is null) return;
|
||||
handler.PlatformView.CharacterSpacing = picker.CharacterSpacing;
|
||||
}
|
||||
|
||||
public static void MapHorizontalTextAlignment(PickerHandler handler, IPicker picker)
|
||||
{
|
||||
// Text alignment would require changes to SkiaPicker drawing
|
||||
if (handler.PlatformView is null) return;
|
||||
handler.PlatformView.HorizontalTextAlignment = picker.HorizontalTextAlignment;
|
||||
}
|
||||
|
||||
public static void MapVerticalTextAlignment(PickerHandler handler, IPicker picker)
|
||||
{
|
||||
// Text alignment would require changes to SkiaPicker drawing
|
||||
if (handler.PlatformView is null) return;
|
||||
handler.PlatformView.VerticalTextAlignment = picker.VerticalTextAlignment;
|
||||
}
|
||||
|
||||
public static void MapBackground(PickerHandler handler, IPicker picker)
|
||||
|
||||
@@ -125,6 +125,42 @@ public class SkiaPicker : SkiaView
|
||||
BindingMode.TwoWay,
|
||||
propertyChanged: (b, o, n) => ((SkiaPicker)b).InvalidateMeasure());
|
||||
|
||||
public static readonly BindableProperty FontAttributesProperty =
|
||||
BindableProperty.Create(
|
||||
nameof(FontAttributes),
|
||||
typeof(FontAttributes),
|
||||
typeof(SkiaPicker),
|
||||
FontAttributes.None,
|
||||
BindingMode.TwoWay,
|
||||
propertyChanged: (b, o, n) => ((SkiaPicker)b).Invalidate());
|
||||
|
||||
public static readonly BindableProperty CharacterSpacingProperty =
|
||||
BindableProperty.Create(
|
||||
nameof(CharacterSpacing),
|
||||
typeof(double),
|
||||
typeof(SkiaPicker),
|
||||
0.0,
|
||||
BindingMode.TwoWay,
|
||||
propertyChanged: (b, o, n) => ((SkiaPicker)b).Invalidate());
|
||||
|
||||
public static readonly BindableProperty HorizontalTextAlignmentProperty =
|
||||
BindableProperty.Create(
|
||||
nameof(HorizontalTextAlignment),
|
||||
typeof(TextAlignment),
|
||||
typeof(SkiaPicker),
|
||||
TextAlignment.Start,
|
||||
BindingMode.TwoWay,
|
||||
propertyChanged: (b, o, n) => ((SkiaPicker)b).Invalidate());
|
||||
|
||||
public static readonly BindableProperty VerticalTextAlignmentProperty =
|
||||
BindableProperty.Create(
|
||||
nameof(VerticalTextAlignment),
|
||||
typeof(TextAlignment),
|
||||
typeof(SkiaPicker),
|
||||
TextAlignment.Center,
|
||||
BindingMode.TwoWay,
|
||||
propertyChanged: (b, o, n) => ((SkiaPicker)b).Invalidate());
|
||||
|
||||
public static readonly BindableProperty ItemHeightProperty =
|
||||
BindableProperty.Create(
|
||||
nameof(ItemHeight),
|
||||
@@ -237,6 +273,42 @@ public class SkiaPicker : SkiaView
|
||||
set => SetValue(FontSizeProperty, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the font attributes.
|
||||
/// </summary>
|
||||
public FontAttributes FontAttributes
|
||||
{
|
||||
get => (FontAttributes)GetValue(FontAttributesProperty);
|
||||
set => SetValue(FontAttributesProperty, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the character spacing.
|
||||
/// </summary>
|
||||
public double CharacterSpacing
|
||||
{
|
||||
get => (double)GetValue(CharacterSpacingProperty);
|
||||
set => SetValue(CharacterSpacingProperty, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the horizontal text alignment.
|
||||
/// </summary>
|
||||
public TextAlignment HorizontalTextAlignment
|
||||
{
|
||||
get => (TextAlignment)GetValue(HorizontalTextAlignmentProperty);
|
||||
set => SetValue(HorizontalTextAlignmentProperty, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the vertical text alignment.
|
||||
/// </summary>
|
||||
public TextAlignment VerticalTextAlignment
|
||||
{
|
||||
get => (TextAlignment)GetValue(VerticalTextAlignmentProperty);
|
||||
set => SetValue(VerticalTextAlignmentProperty, value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the item height.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user