version 2.0.0: Destructive changes!!
Document shortage, now
This library rapped some platform span class
- Android: SpannableStringBuilder(to ICharSequence
- iOS: NSMutableAttributedString(to NSAttributedString
- UWP: List<Inline>
- Windows Phone 8: List<Inline>
- Windows Phone 8.1: List<Inline>
- Windows 8.1: List<Inline>
Platform | Supported | BackgroundColor | ForegroundColor | Bold/Italic | RelativeFontSize | Command |
---|---|---|---|---|---|---|
Android | Yes | ✓ | ✓ | ✓ | ✓ | ✓ |
iOS | Yes | ✓ | ✓ | ✓ | will support(please advice) | |
UWP | Yes | ✓ | ✓ | ✓ | ✓ | |
Windows Phone 8 | Yes | ✓ | ✓ | ✓ | ||
Windows Phone 8.1 | Yes | ✓ | ✓ | ✓ | ✓ | |
Windows 8.1 | Yes | ✓ | ✓ | ✓ | ✓ | |
Mac | No |
Mutable text and mutable meta data
immutable text and mutable meta data
Alike StringBuilder, mutable text and immutable meta data.
If change meta data, build FormattedString to access EditableSpan
Alike string, immutable text and mutable meta data.
Two index type: text index or span index
- text index operator
- string like operator
- span index operator
- method name have suffix **Span
- EditableSpan indexer
Alike html converter.
Not support Command, now.
The following syntax:
<span font-size="{enum name or value} font="{enum name}" f-color="{value (format: a,r,g,b)} b-color="{value (format: a,r,g,b)}">text</span>
The following enum name:
- font-size
- ultra-big
- big
- normal
- small
- ultra-small
- font
- none
- bold
- italic
- italic-bold
In PCL: prepare FormattedString
FormattedString HelloWorld = new FormattedString(new Span[] {
new Span() {
Text = "Hello",
ForegroundColor = new SpanColor(125,125,125)
},
new Span() {
Text = "World",
FontAttributes = FontAttributes.Bold | FontAttributes.Italic,
FontSize = FontSize.Small
}
});
In PCL or target Platform: make ISpaanableString
ISpannableString spannableString = HelloWorld.Build();
In target Platform: put spanned string
//for Android
textView.TextFormatted = spannableString.Span();
textView.SetTextWithCommandableSpan(spannableString); // for using Command
//for iOS
Label.AttributedText = spannableString.Span();
//for All Windows Platform
spannableString.SetTo(TextBlock);
Span Method is only cast ISpannableString→each platform`s SpannableString and take Text field
SetTo Method is for All Windows Platform, auto clear and add all span to TextBlock-Text.
under MIT License