/// <summary> /// Renders an adaptive card. /// </summary> /// <returns></returns> public RenderedAdaptiveCard RenderCard(AdaptiveCard card) { if (card == null) { throw new ArgumentNullException(nameof(card)); } ValidateCard(card); RenderedAdaptiveCard renderCard = null; void Callback(object sender, AdaptiveActionEventArgs args) { renderCard?.InvokeOnAction(args); } var context = new AdaptiveRenderContext(Callback, null) { ActionHandlers = ActionHandlers, Config = HostConfig ?? new AdaptiveHostConfig(), Resources = Resources, ElementRenderers = ElementRenderers }; var element = context.Render(card); renderCard = new RenderedAdaptiveCard(element, card, context.Warnings); renderCard.InputBindings = context.InputBindings; return(renderCard); }
/// <summary> /// Renders an adaptive card. /// </summary> /// <param name="card">The card to render</param> public RenderedAdaptiveCard RenderCard(AdaptiveCard card) { if (card == null) { throw new ArgumentNullException(nameof(card)); } RenderedAdaptiveCard renderCard = null; //card.ResolveData(new ResolveContext() //{ // Elements = card.Elements //}); void ActionCallback(object sender, AdaptiveActionEventArgs args) { renderCard?.InvokeOnAction(args); } void MediaClickCallback(object sender, AdaptiveMediaEventArgs args) { renderCard?.InvokeOnMediaClick(args); } var context = new AdaptiveRenderContext(ActionCallback, null, MediaClickCallback, card.Elements) { ResourceResolvers = ResourceResolvers, ActionHandlers = ActionHandlers, Config = HostConfig ?? new AdaptiveHostConfig(), Resources = Resources, ElementRenderers = ElementRenderers, Lang = card.Lang }; string accentColor = HostConfig.ContainerStyles.Default.ForegroundColors.Accent.Default; string lighterAccentColor = ColorUtil.GenerateLighterColor(accentColor); string attentionColor = HostConfig.ContainerStyles.Default.ForegroundColors.Attention.Default; string lighterAttentionColor = ColorUtil.GenerateLighterColor(attentionColor); Resources["Adaptive.Action.Positive.Button.Static.Background"] = context.GetColorBrush(accentColor); Resources["Adaptive.Action.Positive.Button.MouseOver.Background"] = context.GetColorBrush(lighterAccentColor); Resources["Adaptive.Action.Destructive.Button.Foreground"] = context.GetColorBrush(attentionColor); Resources["Adaptive.Action.Destructive.Button.MouseOver.Foreground"] = context.GetColorBrush(lighterAttentionColor); var element = context.Render(card); renderCard = new RenderedAdaptiveCard(element, card, context.Warnings, context.InputBindings); return(renderCard); }