У меня есть список, заполненный элементами управления пользователя.Когда я заполняю список, я получаю вертикальную полосу прокрутки, как я должен, но я также получаю ненужную горизонтальную полосу прокрутки в списке.Я пытался создать конвертер для элемента списка, но конвертер никогда не вызывался.
<ListBox.Resources>
<local:ControlWidthConverter x:Key="widthConverter" />
</ListBox.Resources>
<ListBox.ItemTemplate>
<DataTemplate>
<!--Manages click on child controls so listitem is selected-->
<Controls:ComponentEditItem HorizontalAlignment="Left"
Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListBox}},
Path=ActualWidth, Converter={StaticResource widthConverter}}">
<Controls:ComponentEditItem.Triggers>
<EventTrigger RoutedEvent="GotFocus">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Duration="00:00:00" Storyboard.Target="{Binding Path=., RelativeSource={RelativeSource FindAncestor, AncestorType=ListBoxItem}}" Storyboard.TargetProperty="IsSelected">
<DiscreteBooleanKeyFrame Value="True" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Controls:ComponentEditItem.Triggers>
</Controls:ComponentEditItem>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
Конвертер
public class ControlWidthConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double result = (double)value;
if (!Double.IsNaN(result))
{
result = result - 20;
}
else
{
result = 100D;
}
return result;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new System.NotImplementedException("Not implemented.");
}
#endregion
}
У всех есть идея, почему конвертер не вызывается.Или как убрать горизонтальную полосу прокрутки