2012-04-30 38 views
2

私はリストボックスをusercontrol内に持っています。水平方向に設定すると、期待どおりにスクロールしますが、これを垂直に変更すると、キーボードのダウンキーを押すと選択したアイテムがリストを変更し続けますが、スクロールして選択したアイテムを見ることができなくなります。基本的には画面の一番下から消えます。WPF ScrollViewerが垂直にスクロールしない

ページレイアウトには枠線を外していないグリッドがあります。このグリッド内 このContentControlには、ユーザーコントロールである内ContentControlに

<Grid Grid.Column="1" Margin="0,30,30,30" Opacity=".7"> 
     <Border BorderBrush="#FFFFFFFF" BorderThickness="2,2,2,2" CornerRadius="4,4,4,4" > 
      <Border.Effect> 
       <BlurEffect KernelType="Gaussian" Radius="4"/> 
      </Border.Effect> 
     </Border> 
     <Grid Background="Black"> 
      <ContentControl Content="{Binding SelectedSettingViewModel}" Focusable="False" /> 
     </Grid> 
    </Grid> 

あります。 usercontrol内に問題があるリストボックスがあります。

<UserControl> 
<Grid > 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <Controls:KNListBox Grid.Row="4" x:Name="SettingsListBox" KeyboardNavigation.DirectionalNavigation="Continue" ItemsSource="{Binding AutoCompleteDirectories}" 
          Style="{DynamicResource SettingsListBox}" SelectedItem="{Binding SelectedAutoCompleteDirectory, Mode=TwoWay}"> 
     <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 
       <StackPanel Orientation="Horizontal"></StackPanel> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel> 
    </Controls:KNListBox> 
</Grid> 
</UserControl> 

私はグリッドの高さを変更し、リストボックスのスタイルを削除してみましたが、喜びはありませんでした。私はどこに間違っているのか誰にでも見える?

答えて

1

リストボックスを含む行の定義をAutoから*に変更することで、これを修正しました。 Autoは行をリストボックスのサイズに拡大していたため、画面から消えてスクロールしませんでした。

<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="*" /> 
</Grid.RowDefinitions> 
関連する問題