Предложения AutoSuggestBox появляются за пределами окна приложения - PullRequest
0 голосов
/ 31 января 2020

Я испытываю очень странное поведение с AutoSuggestBox в приложении UWP.

В частности, если AutoSuggestBox появляется в ScrollViewer и в настоящее время не отображается на экране, его предложения открываются в любом случае, и Список предложений появляется за пределами главного окна моего приложения (примерно в том же месте, где они могли бы появиться, если бы окно приложения было больше).

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

Еще более странным является тот факт, что Список предложений появляется за пределами окна приложения. Я не думал, что элемент управления xaml может превысить границы своего контейнера, не говоря уже о границах приложения.

Франк

1 Ответ

0 голосов
/ 31 января 2020

Предложения AutoSuggestBox появляются за пределами окна приложения

Пожалуйста, отметьте этот случай ответ , в последней версии Мы добавили ShouldConstrainToRootBounds для Pupup управления, вы можете установить его как true, чтобы избежать списка go через границы.

private void AutoSuggestBox_Loaded(object sender, RoutedEventArgs e)
{
    var popup = MyFindGridViewChildByName(sender as AutoSuggestBox, "SuggestionsPopup") as Popup;
    popup.ShouldConstrainToRootBounds = true;
}
public static DependencyObject MyFindGridViewChildByName(DependencyObject parant, string ControlName)
{
    int count = VisualTreeHelper.GetChildrenCount(parant);

    for (int i = 0; i < count; i++)
    {
        var MyChild = VisualTreeHelper.GetChild(parant, i);
        if (MyChild is FrameworkElement && ((FrameworkElement)MyChild).Name == ControlName)
            return MyChild;

        var FindResult = MyFindGridViewChildByName(MyChild, ControlName);
        if (FindResult != null)
            return FindResult;
    }

    return null;
}
...