2016-04-07 10 views
0

カスタムレンダラを作成しようとするのは初めてです。私はここでこのスレッドに従った:https://forums.xamarin.com/discussion/32264/how-can-i-change-switch-text-color-android。私は、サンプルコードを載せた最初の人を見ました。私は自分のレンダラでそれを使用しようとしましたが、それは次のエラーを与える:ここXamarin - カスタムスイッチが動作しない

Type or namespace 'controls' doesn't exist in 'saleskicker'

は私のコードです:

using System; 
using Xamarin.Forms.Platform.Android; 
using Xamarin.Forms; 
using SalesKicker; 

[assembly:ExportRenderer(typeof(SalesKicker.Controls.CustomSwitch), typeof(CustomSwitchRenderer))] 

namespace SalesKicker 
{ 
public class CustomSwitchRenderer : SwitchRenderer 
{ 
    protected override void OnElementChanged(ElementChangedEventArgs<Switch> e) 
    { 
     base.OnElementChanged(e); 
     if (Control != null) 
     { 
      Control.TextOn = "AAN"; 
      Control.TextOff = "UIT"; 
      Control.SetTextColor(Color.White); 
     } 

     if (Control.Checked == true) 
     { 
      Control.SetBackgroundColor(Color.Green); 
     } 
    } 
} 
} 

私は内部クラスを持っていたときただし、エラーは表示されませんでした'CustomRenderers'というフォルダ。しかし、私はこれが大したことではないと思います。私はここで間違って何をしていますか?誰か助けてくれますか?

+0

これはDroidプロジェクトの単なるレンダラです。また、共有PCLプロジェクトに参加する "CustomSwitch"共有コントロールクラスの実装を確認する必要があります。 – irreal

+0

私は 'SalesKicker.Controls.CustomSwith'を 'Switch'だけに変更しなければなりませんでした。 –

+0

これは、あなたのアプリケーション内のすべてのスイッチを変更したいときは大丈夫です。いくつかの特定のスイッチを異なるものにしたい場合は、共有プロジェクトに「CustomSwitch」というスイッチのサブクラスを作成して、すでに行ったようにレンダラーを作成します。 – irreal

答えて

2

色を変更したいだけなら、CustomControlは必要ありません。そして、デフォルトのレンダラーをあなた自身のものに置き換えることができます。

[assembly:ExportRenderer(typeof(Switch), typeof(CustomSwitchRenderer))] 
+0

ありがとう、私はこれをポストしようとしていた。私は次回に自分の目を鋭くすべきだ! –

関連する問題