0

私のプロジェクトでは、custommessagebox に選択肢のあるボタンのリストを表示する必要があります。

今、私はそれを設定するのに問題はありませんが、ロングリストセレクターを作成し、それをスクロールビューアーに追加してカスタムメッセージボックスを表示すると、いくつかのボタンしか表示されず、スクロールできません。

私が持っているコードは次のとおりです。

    private void btnChronicity_ButtonClicked(object sender, Events.LinkEventArgs e)
    {
        editBox = new CustomMessageBox() 
        {
           ....
        };

        ScrollViewer viewer = new ScrollViewer();
        choiceSelector = new Controls.MessageBocChoiceSelectorControl();
        List<items> chronicity = new List<items>();
        foreach (ChronicityModel chronicity in ...Chronicities)
        {
            chronicity.Add(new items(chronicity.Name, chronicity.Selected, chronicity.Id));
        }

        choiceSelector.ItemSource = chronicity;
        editBox.Content = viewer;
        editBox.Show();
    }

そして、choiceselector は usercontrol で、次のようになります。

<StackPanel>
    <Controls:LongListSelector x:Name="LayoutRoot">
        <Controls:LongListSelector.ItemTemplate>
            <DataTemplate>
                <Controls1:CheckableListButton Header1="{Binding Header}"
                                           Selected="{Binding Selected}"
                                           Link="{Binding Link}"
                                           ButtonClicked="CheckableListButton_ButtonClicked"/>
            </DataTemplate>
        </Controls:LongListSelector.ItemTemplate>
    </Controls:LongListSelector>
</StackPanel>

wherelistbuttonは別のコントロールで、基本的にbuttonいくつかのtextBlocks、選択されているかどうか (別のスタイル) を示すブール値、およびLinkカスタム クリック イベントで返される文字列 を含みます。

結果は次のようになります。 問題

しかし、問題はスクロールできないことです...

なぜそのように振る舞うのですか?修正方法は?

編集:

longlistselector などをいじってみると、スクロールが機能することがわかりました。問題は、LongListSelector がすべての項目ではなく、メッセージ ボックスに収まる数の項目しか読み込まないことです..... (小さいメッセージ ボックスを作成すると、より少ないアイテム、より大きく作成すると、より多く表示されます)

したがって、質問は次のように少しシフトしました。

LONGLISTSELECTOR を作成する方法は、画面に収まるだけではなく、すべてのアイテムを表示します。

4

3 に答える 3