2011-12-28 15 views
1

私はusercontrolsでいっぱいのリストボックスを持っています。リストボックスを作成するとき、垂直スクロールバーが表示されますが、リストボックスには水平スクロールバーが表示されます。私はlistboxitemのコンバータを作成しようとしましたが、コンバータは決して呼び出されません。リストボックスに水平スクロールバーがあります

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

誰でもコンバータが呼び出されない理由を考えています。または水平スクロールバーを削除する方法

答えて

5

これは機能しますか?

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

はい、私はウィンドウのサイズを変更した場合、水平スクロールバーが表示されません。 – klashagelqvist

+0

オートについてはどうですか? – snurre

関連する問題