양식
public class LetterSpacingLabel : Label
{
public float LetterSpacing { get; set; }
}
코드처럼 보이는 안드로이드 렌더러 제어 :
public class LetterSpacingLabelRenderer : LabelRenderer
{
protected LetterSpacingLabel LetterSpacingLabel { get; private set; }
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{
this.LetterSpacingLabel = (LetterSpacingLabel)this.Element;
}
var letterSpacing = this.LetterSpacingLabel.LetterSpacing;
this.Control.LetterSpacing = letterSpacing;
this.UpdateLayout();
}
}
아이폰 OS 렌더러
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
base.OnElementChanged(e);
var data = Element as LetterSpacingLabel;
if (data == null || Control == null)
{
return;
}
var text = Control.Text;
var attributedString = new NSMutableAttributedString(text);
var nsKern = new NSString("NSKern");
var spacing = NSObject.FromObject(data.LetterSpacing * 10);
var range = new NSRange(0, text.Length);
attributedString.AddAttribute(nsKern, spacing, range);
Control.AttributedText = attributedString;
}
< LetterSpacingLabel LetterSpacing="0.5" Text="Lorem ipsum dolor sit amet" />
다음 스크린 샷은 포스트 here
그런데 왜 제목이 우리를 외치고에서 iOS
에 라벨을 보일 것 :다음 코드 예제에서는 LetterSpacingLabel 컨트롤을 사용하는 방법을 보여줍니다? – Mureinik
@Mureinik 그 누구에게도 외치는 것은 아닙니다. – Sonali
이제는 편집 해 보았습니다. 감사! – Mureinik