2015-06-01 160 views
2

我已經使用了自定義的渲染設置字體..問題是,當我更改標籤的文本的字體樣式disappers ..字體標籤變回默認,當標籤的文本改變

提供的是我的自定義渲染器代碼..任何人都可以告訴我我做錯了什麼?

[assembly: ExportRenderer (typeof (MyLabel), typeof (MyLabelRenderer))] 
namespace FormsProj.Droid 
{ 
public class MyLabelRenderer : LabelRenderer 
{ 
    protected override void OnElementChanged (ElementChangedEventArgs<Label> e) 
    { 
     base.OnElementChanged (e); 

     var label = (TextView)Control; 
     Typeface font = Typeface.CreateFromAsset (Forms.Context.Assets, "Raleway-Regular.ttf"); 
     label.Typeface = font; 
    } 
} 
} 

更新#1 這是使用系統我的代碼共享項目 ;使用Xamarin.Forms的 ;

namespace FormsProj 
{ 
public class MyLabel:Label 
{ 
} 
} 

代碼中我使用MyLabel

var Thankyoutxt = new MyLabel { 
      XAlign = TextAlignment.Center, 
      Text = "Thank You", 
      VerticalOptions = LayoutOptions.CenterAndExpand, 
      HorizontalOptions = LayoutOptions.Center, 
      TextColor = Xamarin.Forms.Color.White, 
      FontAttributes = FontAttributes.Bold, 
      Style = Device.Styles.CaptionStyle, 
      FontFamily = ColorandFont.FontName, 

     }; 

按鈕位置我會改變文本的點擊,那時的字體變回沒有自定義的字體..

在此先感謝.. :)

+0

你在哪裏改變文本?我只看到更改字體的代碼。 –

+0

@JohnOdom Chaging文本代碼就像** label.Text =「已編輯」; **我假定問題出在Renderer內。 –

+0

我希望您能在代碼中更改文本的位置。我已經知道如何改變文本:P。這可能是您如何調用渲染器的問題。 –

回答

0

您可能還想嘗試重置渲染器中OnPropertyChangedEvent的屬性。過去我曾遇到這方面的問題,並且已經解決了這個問題。