0

TreeView を Mac NSOutlineView のようにスタイルしたいと思います。

http://s3.amazonaws.com/cocoacontrols_production/osx_screens/44/full.png?1299027729

主な機能は次のとおりです。

  1. 選択した項目の TreeView 全幅ハイライト
  2. 背景色
  3. ルート ヘッダー アイテムの異なるスタイル

2 と 3 は追跡できると思いますが、1 に関連するものは何も見つかりません。

無理そうですが、Blendで遊んでみます。描画へのコード アクセスはありませんか? ここのように、ボックスは行の描画コードを置き換えますか? 同じように見えるAGWの純粋なpython HyperTreeListを使用してwxPythonでプロトタイプを作成しましたが、残念ながらドラッグアンドドロップには深刻なグラフィックス/リフレッシュの問題があります。

4

2 に答える 2

1

必要なことを行う TreeViewItem スタイルをMongooseリポジトリにプッシュしました。

ここで見つけることができます: StretchedTreeViewItemControlTemplate

サンプルコードは次のとおりです。

<TreeView ItemContainerStyle="{StaticResource StretchedTreeViewItemControlTemplate}">
    <TreeViewItem Header="Item 1">
        <TreeViewItem Header="Item 1.1">
            <TreeViewItem.Style>
                <Style BasedOn="{StaticResource StretchedTreeViewItemControlTemplate}" TargetType="{x:Type TreeViewItem}">
                    <Setter Property="FontSize" Value="15" />
                </Style>
            </TreeViewItem.Style>
        </TreeViewItem>
    </TreeViewItem>
    <TreeViewItem Header="Item 2" Background="AntiqueWhite" />
</TreeView>

ここに画像の説明を入力

于 2013-04-04T14:06:08.400 に答える
0

ItemsControl.ItemContainerStyle は適切でしょうか? http://msdn.microsoft.com/fr-fr/library/system.windows.controls.itemscontrol.itemcontainerstyle(v=vs.85).aspx

Blend での簡単なテストでは、次の結果が得られました。

親の場合:

ここに画像の説明を入力

子供の場合:

ここに画像の説明を入力

でこぼこしていて見栄えがよくないことに注意してください。

左の境界線まで引き延ばさないのはなぜですか?もちろん、ほとんどのテンプレートを再作成しない限り、これは不可能だと思います (Blend で見たものから)。また、セレクターの左側が同じ水平方向の値に揃えられると、アイテム間の階層的な外観が確実に失われます。

もう 1 つは、(要求どおりに) そうしたとしても、エキスパンダーの三角形が青色の混乱で失われるということです... 私の意見では、UX が悪いです。

最終的に、コントロールは TreeView よりも ListBox のようになります。

とりあえず、手順はこちら(私はTreeViewのItemContainerStyleTemplateを編集しました)

ここに画像の説明を入力

(最後のコメントをよく読んでいませんでした。最終的に、私の結果はあなたのものとほとんど同じです)

Blend でそれを行う場所:

ここに画像の説明を入力

于 2013-04-04T13:08:07.213 に答える