Как динамически изменить ширину выпадающего меню ComboBox с помощью ширины выпадающего меню?
Мой комбинированный список должен растягиваться горизонтально по всей ширине окна. Это касается выпадающего меню и выпадающего меню! Поэтому я установил ширину поля со списком "Авто" и привязал ширину ItemsPanelTemplate к ширине поля со списком. Я также использую шаблон данных обрезки текста для элементов.
При запуске приложения ширина раскрывающегося меню соответствует ширине кнопки со списком, и также работает обрезка текста. Изменение размера окна во время выполнения приводит к следующему поведению:
- Изменение размера окна шире -> кнопка выпадающего меню и правильное изменение размера выпадающего меню (они остаются полностью растянутыми по ширине окна)
- Изменение размера окна меньше -> кнопка выпадающего меню изменяет размер правильно, выпадающее меню не меняет размер меньше, чем было изначально. Поэтому при перетаскивании окна очень маленького размера выпадающее меню обрезается.
Как я могу изменить ширину выпадающего меню в соответствии с кнопкой выпадающего меню во время выполнения?
<UserControl.Resources>
<DataTemplate x:Key="ComboBoxCustomTemplate">
<TextBlock Text="{Binding Name}" TextTrimming="WordEllipsis"/>
</DataTemplate>
<ItemsPanelTemplate x:Key="ComboBoxItemsPanel">
<VirtualizingStackPanel Orientation="Vertical" x:Name="iptCombo"
Width="{Binding ActualWidth, ElementName=radComboBox, Mode=OneWay}" HorizontalAlignment="Stretch" />
</ItemsPanelTemplate>
</UserControl.Resources>
<Grid x:Name="ImageView" Margin="5">
<telerik:RadComboBox x:Name="radComboBox"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
Width="Auto"
IsEditable="False"
ItemsSource="{Binding Items}"
ItemsPanel="{StaticResource ComboBoxItemsPanel}"
ItemTemplate="{StaticResource ComboBoxCustomTemplate}"
SelectedIndex="0" >
</telerik:RadComboBox>
</Grid>