async Task RefreshLinkAction(ILinkActionBase linkActionBase)
        {
            try
            {
                if (this.UseRandomWipe)
                {
                    this.CurrentWipe = this.RandomWipes[random.Next(this.RandomWipes.Count)];
                }
                else
                {
                    if (linkActionBase is LinkAction linkAction)
                    {
                        this.CurrentWipe = linkAction.TransitionWipe ?? new CircleWipe();
                    }
                }

                var result = await Task.Run(() =>
                {
                    return(linkActionBase?.ActionResult());
                });

                //var result = await MessageService.ShowWaittingResultMessge(() =>
                // {
                //     return linkActionBase?.ActionResult().Result;
                // });


                await this.Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(() =>
                {
                    if (this.Content == result?.View)
                    {
                        //this.Content = new Button() { Visibility = Visibility.Collapsed };
                        this.Content = result?.View;
                    }
                    else
                    {
                        this.Content = result?.View;
                    }

                    //this.Content = result?.View;
                }));

                // this.Dispatcher.Invoke(() =>
                //{
                //    if (this.Content == result?.View)
                //    {
                //        this.Content = new Button() { Visibility = Visibility.Collapsed };
                //        this.Content = result?.View;
                //    }
                //    else
                //    {
                //        this.Content = result?.View;
                //    }
                //});
            }
            catch (Exception ex)
            {
                this.Content = ex;
            }
        }
        async Task RefreshLinkAction(ILinkActionBase linkActionBase)
        {
            try
            {
                if (this.UseRandomWipe)
                {
                    this.CurrentWipe = this.RandomWipes[random.Next(this.RandomWipes.Count)];
                }
                else
                {
                    if (linkActionBase is LinkAction linkAction)
                    {
                        this.CurrentWipe = linkAction.TransitionWipe ?? new CircleWipe();
                    }
                }

                var result = await Task.Run(() =>
                {
                    return(linkActionBase?.ActionResult());
                });


                this.Dispatcher.Invoke(() =>
                {
                    if (this.Content == result?.View)
                    {
                        this.Content = new Button()
                        {
                            Visibility = Visibility.Collapsed
                        };
                        this.Content = result?.View;
                    }
                    else
                    {
                        this.Content = result?.View;
                    }
                });
            }
            catch (Exception ex)
            {
                this.Content = ex;
            }
        }