Как загрузить контентную страницу Xamarin Forms в UWP ContentDialog? - PullRequest
0 голосов
/ 08 ноября 2018

Я создаю свой собственный ProgressDialogService в Xamarin Forms, и у меня работает служба Android, а также отображается диалоговое наложение, которое затемняет фон и показывает мой ProgressDialog (Xamarin Forms ContentPage). У меня почти также работает служба UWP, но я не могу найти правильный способ загрузки / рендеринга Xamarin Forms ContentPage внутри UWP ContentDialog.

Я знаю, что мог бы создать отдельную страницу внутри UWP и использовать ее в качестве своего ContentDialog, но я бы хотел использовать возможности форм Xamarin и просто использовать один и тот же ProgressDialog на обеих платформах.

Вот то, что я имею до сих пор, и это вроде работает, но выглядит немного забавно. Я знаю, что мне еще нужно поиграть с размерами, но почему это делает странно? Например, текст не выглядит резким, а все выглядит слишком большим.

Хотите знать, на правильном ли я пути или нет? Любой вход приветствуется!

private void InitProgressDialog(ProgressDialog progressDialog = null)
{
    _progressDialog = progressDialog;

    // check if the page parameter is available
    if (_progressDialog != null)
    {
        // build the loading page with native base
        _progressDialog.Parent = Application.Current.MainPage;

        _progressDialog.Layout(new Rectangle(0,
                                             0,
                                             Application.Current.MainPage.Width,
                                             Application.Current.MainPage.Height));

        _progressDialog.CancelButtonClicked += ProgressDialog_OnCancelButtonClicked;

        var renderer = Platform.GetRenderer(progressDialog);

        if (renderer == null)
        {
            renderer = Platform.CreateRenderer(_progressDialog);
            Platform.SetRenderer(_progressDialog, renderer);
        }

        var panel = new StackPanel();

        panel.Children.Add(renderer.ContainerElement);

        _dialog = new ContentDialog { Content = panel };

        _isInitialized = true;
    }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...