Как динамически изменить ширину выпадающего меню ComboBox с помощью ширины выпадающего меню?

Мой комбинированный список должен растягиваться горизонтально по всей ширине окна. Это касается выпадающего меню и выпадающего меню! Поэтому я установил ширину поля со списком "Авто" и привязал ширину ItemsPanelTemplate к ширине поля со списком. Я также использую шаблон данных обрезки текста для элементов.

При запуске приложения ширина раскрывающегося меню соответствует ширине кнопки со списком, и также работает обрезка текста. Изменение размера окна во время выполнения приводит к следующему поведению:

  1. Изменение размера окна шире -> кнопка выпадающего меню и правильное изменение размера выпадающего меню (они остаются полностью растянутыми по ширине окна)
  2. Изменение размера окна меньше -> кнопка выпадающего меню изменяет размер правильно, выпадающее меню не меняет размер меньше, чем было изначально. Поэтому при перетаскивании окна очень маленького размера выпадающее меню обрезается.

Как я могу изменить ширину выпадающего меню в соответствии с кнопкой выпадающего меню во время выполнения?

<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>

0 ответов

Другие вопросы по тегам