1

ItemContainerStyle1段目の項目だけ変更したい。より深いレベルでは、デフォルトのスタイルのままにします。可能ですか?

4

2 に答える 2

2

はい、StyleSelector決定した基準に基づいて異なるスタイルを選択できるカスタムを作成します. あなたの場合、どちらItemsControlがコンテナを所有しているかを確認する必要があります( a のようにTreeView、それぞれTreeViewItemが でありItemsControl、その子を所有しています)。

public class TreeViewFirstItemStyleSelector : StyleSelector
{
    public override Style SelectStyle(object item, DependencyObject container)
    {
        var element = container as TreeViewItem;
        if (element != null && ItemsControl.GetItemsOwner(element) is TreeView)
            return element.FindResource("customStyle") as Style;

        return null;
    }
}

次に、TreeView の ItemContainerStyleSelector プロパティに設定します。

于 2013-01-09T17:57:01.203 に答える
1

Style Trigger最初の要素である場合は、s とテスト項目を使用する必要があります。このコードは単なるアイデアです:

<Style.Triggers>
                <Trigger Property="IsFirst" Value="True">
                    <Setter Property="Color" Value="Red" />
                </Trigger>

于 2013-01-09T17:52:18.313 に答える