【发布时间】:2017-08-09 23:44:06
【问题描述】:
我正在尝试使用custom renderer 为Android 增加Xamarin Forms 项目中滑块的高度。以下代码大部分使用ScaleY。
但是当我移动滑块时,阴影也被缩放并且拇指变得不可见。有没有办法在不影响拇指和阴影大小的情况下增加滑块的大小?
自定义渲染器
[assembly: ExportRenderer(typeof(MySlider), typeof(MySliderRenderer))]
namespace CustomRenderer.Android
{
public class MySliderRenderer : Xamarin.Forms.Platform.Android.SliderRenderer
{
public MySliderRenderer()
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Slider> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
Control.ProgressDrawable.SetColorFilter(
new PorterDuffColorFilter(
Xamarin.Forms.Color.FromHex("#F50F76").ToAndroid(),
PorterDuff.Mode.SrcIn));
// Set Progress bar Thumb color
Control.Thumb.SetColorFilter(
Xamarin.Forms.Color.FromHex("#F50F76").ToAndroid(),
PorterDuff.Mode.SrcIn);
//Change height
Control.ScaleY = 10;
}
}
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
}
}
}
XAML
<ContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:CustomRenderer;assembly=CustomRenderer"
x:Class="CustomRenderer.MainPageXaml">
<StackLayout VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand">
<Label Text="Hello, Custom Renderer 444!" />
<local:MySlider Minimum="0" Maximum="400" Value="5" />
</StackLayout>
</ContentPage>
我的滑块
public class MySlider : Xamarin.Forms.Slider
{
public MySlider()
{
}
}
【问题讨论】:
标签: xamarin xamarin.android xamarin.forms