protected override LightVisualElement CreateMainMessageElement()
        {
            HorizontalScrollableStackElement scrollableStackElement = new HorizontalScrollableStackElement();

            scrollableStackElement.Margin  = new Padding(-60, 0, 60, 0);
            scrollableStackElement.Padding = new Padding(60, 0, 0, 0);
            scrollableStackElement.ScrollBar.ValueChanged += new EventHandler(this.ScrollBar_ValueChanged);
            return((LightVisualElement)scrollableStackElement);
        }
        public override void Synchronize()
        {
            CarouselMessageDataItem          data = this.Data as CarouselMessageDataItem;
            HorizontalScrollableStackElement mainMessageElement = this.MainMessageElement as HorizontalScrollableStackElement;

            foreach (BaseChatCardElement child in mainMessageElement.ItemsLayout.Children)
            {
                child.CardActionClicked -= new CardActionEventHandler(this.CardActionClicked);
            }
            mainMessageElement.ItemsLayout.Children.Clear();
            foreach (BaseChatCardDataItem card in data.CarouselMessage.Cards)
            {
                BaseChatCardElement cardElement = data.ChatMessagesViewElement.ChatElement.ChatFactory.CreateCardElement(card);
                cardElement.Margin             = new Padding(5, 0, 5, 0);
                cardElement.CardActionClicked += new CardActionEventHandler(this.CardActionClicked);
                mainMessageElement.ItemsLayout.Children.Add((RadElement)cardElement);
            }
            mainMessageElement.ScrollBar.Value = data.ScrollOffset;
            base.Synchronize();
        }