機能拡張 - .NET HTML
カスタム要素のレンダリング
レンダラーを完全に制御するには、ElementRenderers
プロパティを使用して既定のレンダラーを add、remove、またはoverride できます。
次の例は、カスタムの "type": "Rating"
要素を定義してレンダリングする方法を示しています。
// Register the new type with the JSON parser
AdaptiveTypedElementConverter.RegisterTypedElement<MyCustomRating>();
// Add the new type to the element renderer registry
renderer.ElementRenderers.Set<MyCustomRating>(MyCustomRating.Render);
// Define a custom Rating element type
public class MyCustomRating : AdaptiveElement
{
public override string Type => "Rating";
public double Rating { get; set; }
public AdaptiveTextSize Size { get; set; }
public AdaptiveTextColor Color { get; set; }
public static FrameworkElement Render(MyCustomRating rating, AdaptiveRenderContext context)
{
var textBlock = new AdaptiveTextBlock
{
Size = rating.Size,
Color = rating.Color
};
for (int i = 0; i < rating.Rating; i++)
{
textBlock.Text += "\u2605";
}
textBlock.Text += $" ({rating.Rating})";
return context.Render(textBlock);
}
}