【发布时间】:2016-02-02 19:28:39
【问题描述】:
我正在使用 Xamarin Forms 选择器控件并需要设置文本颜色,但是没有这样的属性。我尝试制作一个自定义渲染器,它在 android 和 ios 中为我工作(我最终重绘了控件)。在 wp8.1 平台中没有 Draw 事件,并且渲染器中的控件本身似乎没有设置文本颜色的属性。我还尝试更改选择器绑定的控件,但未成功。
目前我已经在 PCL 中创建了可绑定属性 TextColor ,它正在工作。我的渲染器的代码如下所示(我已经剥离了所有的测试代码,只放了基本代码,因为我还没有发现任何有用的东西,我放我的代码只是为了让每个人都了解上下文)。 另请注意,属性 Picker.TextColorProperty 不存在,这是我想做的...
using Namespace.CustomControls;
using Namespace.WinPhone.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Platform.WinPhone;
[assembly: ExportRendererAttribute(typeof(BindablePicker), typeof(BindablePickerRenderer))]
namespace Namspace.WinPhone.Renderers
{
public class BindablePickerRenderer : PickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
{
base.OnElementChanged(e);
var picker = e.NewElement;
BindablePicker bp = (BindablePicker)this.Element;
if (this.Control != null)
{
var pickerStyle = new Style(typeof(Picker))
{
Setters = {
new Setter {Property = Picker.BackgroundColorProperty, Value = bp.BackgroundColor},
new Setter {Property = Picker.TextColorProperty, Value = bp.TextColor}
}
};
picker.Style = pickerStyle;
}
}
}
}
无论如何,我想知道是否有人可能对如何做到这一点有更多的了解,并且可以对我有所启发。
【问题讨论】:
标签: c# windows-phone-8 xamarin xamarin.forms