1

カスタムボタンを作成しています。このスクリーンショットが役に立ちます。画像のようにバッジが左にぶら下がっているのでボタンに問題はありません。しかし、バッジを右に垂らしたい場合、リストボックスの次の項目は、コンテナの境界 (ボタンの幅) を超えるバッジの部分を覆い隠します。これを zordering で修正することはできませんよね?これは、コンテナー内の順序にのみ適用されるため、この場合は ListBoxItem です。ここで何かできることはありますか?参考までに、バッジのスペースを確保するのに十分なマージンを入れるなどの回避策を避けたいと思っています。別のカスタム ボタンがありますそのテキストは編集可能であり、入力されたテキストを取得するために使用される TextBox の拡張は、下にあるボタンをはるかに超えて広がります。

4

1 に答える 1

0

ListBoxItem包含自体に ZIndex を追加する必要があります。アイテムの小さなセットで機能する可能性のあるアプローチの 1 つは、新しいListBoxタイプを作成することです。

public class ZOrderedListBox : ListBox
{
    private int _ZIndex = 0;

    protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
    {
        base.PrepareContainerForItemOverride(element, item);
        Canvas.SetZIndex((UIElement)element, _ZIndex--);
    }
}

上記ZorderedListBoxは、降順の ZIndex を割り当てて、前のアイテムが後のアイテムよりも高い zindex を持つようにします。 この単純化されたソリューションは、Items パネルとしてのみ機能することに注意してください。デフォルトでは機能しませんこれには、さらに洗練が必要です。StackPanelVirtualizingStackPanel

于 2010-10-01T08:17:35.753 に答える