Список с горизонтальной полосой прокрутки - PullRequest
1 голос
/ 28 декабря 2011

У меня есть список, заполненный элементами управления пользователя.Когда я заполняю список, я получаю вертикальную полосу прокрутки, как я должен, но я также получаю ненужную горизонтальную полосу прокрутки в списке.Я пытался создать конвертер для элемента списка, но конвертер никогда не вызывался.

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

У всех есть идея, почему конвертер не вызывается.Или как убрать горизонтальную полосу прокрутки

1 Ответ

5 голосов
/ 28 декабря 2011

Это работает?

<ListBox ScrollViewer.HorizontalScrollBarVisibility="Hidden"/>
...