В моем случае размер всплывающего окна рассчитан неправильно.
<AppBarButton>
<AppBarButton.Flyout>
<Flyout>
<ListView>
<x:String>Short</x:String>
<x:String>Very very very long</x:String>
<x:String>Short</x:String>
<x:String>Short</x:String>
<x:String>Short</x:String>
<x:String>Short</x:String>
<x:String>Short</x:String>
<x:String>Short</x:String>
</ListView>
</Flyout>
</AppBarButton.Flyout>
</AppBarButton>
Если высота окна достаточно велика - все хорошо. Но если нет - ширина выпадающего списка рассчитывается на основе первого элемента (не самого большого), и я вижу следующее:
Как я могу изменить ширина Flyout из кода (или из XAML)?
РЕДАКТИРОВАТЬ:
Следующий код работает:
auto w = filesListView->ActualWidth.ToString();
Windows::UI::Xaml::Style^ s = ref new Windows::UI::Xaml::Style();
s->Setters->Append(ref new Setter(MinWidthProperty, w));
myFlyout->FlyoutPresenterStyle = s;
Я пытался поместить его в Flyout.Opening (), Flyout.Opened ( ), ListView.SizeChanged (), ListView.Loaded (), ListView.Loading (), ListView.LayoutUpdated (). Проблема в том, что он работает, начиная со второго звонка. При первом вызове всплывающее окно по-прежнему отображается с неправильной шириной.