4

AutoCompleteBoxアプリでシンプルなものを作成しましたWPFが、Populateイベントをインターセプトするコードでうまく読み込まれますが、リストがポップアップし、下矢印キーを押してリストの最後に到達すると、垂直スクロールバーがスクロールしません。

値は、スクロールしているようにフィールド内で変化し続けますが、スクロールバーは移動しません。

マウスを使用すると、うまくスクロールします。

スクロールするには矢印キーが必要です。

何かアイデア/提案はありますか?

私はWPFこの修正に不慣れで、永遠にこの修正を探してきました。

4

2 に答える 2

2

SelectionChanged イベントをアタッチしてから、ハンドラー内で次のようにします。

private void AutoCompleteBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    AutoCompleteBox box = (AutoCompleteBox)sender;
    ListBox innerListBox = (ListBox) box.Template.FindName("Selector", box);
    innerListBox.ScrollIntoView(innerListBox.SelectedItem);
}
于 2014-06-16T10:12:37.857 に答える
1

同じ動作が見られます。別の問題について話しているcodeplexの投稿を見つけましたが、投稿の下部に、ScrollIntoView をサポートするクラス AutoCompleteBoxEx があるため、SelectionChanged を接続することもできます。これにより、必要な動作が得られるはずです。これが組み込まれていない理由がわかりません。投稿されたコードをテストする機会がありました。

アップデート

投稿のコードをクラスに貼り付け、AutoCompleteBox を AutoCompleteBoxEx に変更し、AutoCompleteBoxEx の名前空間を追加することで XAML で使用すると、正常に機能しました。XAML でイベントを指定する必要はなく、分離コードにコードを追加する必要もありません。

于 2011-12-09T19:46:21.750 に答える