Размер представления пользовательского рендерера не обновлен - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь создать пользовательский макет в Xamarin, который содержит различные элементы для каждой платформы (в основном UWP -> текстовое поле, Android -> кнопки).

Я следовал учебникам по Xamarin для создания пользовательского средства визуализации:

[assembly: ExportRenderer(typeof(CheckWordRecognizedLayout), typeof(UwpCheckWordRecognizedLayoutRenderer))]
namespace dictionary.UWP.Renderers
{
    public class UwpCheckWordRecognizedLayoutRenderer : VisualElementRenderer<StackLayout, StackPanel>
    {
        protected override void OnElementChanged(ElementChangedEventArgs<StackLayout> e)
        {
            base.OnElementChanged(e);
            if (Control == null)
                SetNativeControl(new StackPanel());
            if (e.NewElement != null)
                Control.Children.Add(new TextBox{Text="Hello."});
        }
    }
}

CheckWordRecognizedLayout - это пустой класс, производный от StackLayout.

Я вижу TextBox в живом дереве визуализации отладчика,Тем не менее, я не вижу его внутри приложения: ActualHeight каждого элемента равно 0.

Я попытался обновить ограничивающие рамки элементов, определив их высоту вручную, обновив или аннулировав все макеты UIElement s., но это не помогло.Даже пытался заменить целевой нативный тип с StackPanel на TextBox, но он тоже не появился.

Я пропустил какую-то важную конфигурацию?

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