2

ユーザーコントロール内に含まれるリストボックスがあります。水平方向に設定すると期待どおりにスクロールしますが、これを垂直方向に変更すると、キーボードの下キーを押すと選択したアイテムがリストを下に変更し続けますが、何もスクロールしないため、選択したアイテムが表示されなくなります。基本的には画面の下部から消えます。

ページ レイアウトには、画面からはみ出さない境界線で囲まれたグリッドがあります。このグリッド内には 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>

この contentcontrol 内には 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>

グリッドの高さを変更し、ListBox のスタイルを削除しようとしましたが、喜びはありませんでした。誰が私が間違っているのかを見ることができますか?

4

1 に答える 1

1

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

<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="*" /> 
</Grid.RowDefinitions> 
于 2012-05-02T17:03:43.840 に答える