最も深いTreeViewItem
ノードの左インデントを減らすにはどうすればよいですか?何らかの理由でWPFは、このインデントを、最も深いノードを除くすべてのノードでかなり増加させるようです。ウィンドウXPのツリービューの実装を見ると、各深度には同じ左マージンがあります。最も深いノードのTreeViewItemのインデントを減らす
検索しましたが、実現する実装が見つからないようです。まだ可能です。
最も深いTreeViewItem
ノードの左インデントを減らすにはどうすればよいですか?何らかの理由でWPFは、このインデントを、最も深いノードを除くすべてのノードでかなり増加させるようです。ウィンドウXPのツリービューの実装を見ると、各深度には同じ左マージンがあります。最も深いノードのTreeViewItemのインデントを減らす
検索しましたが、実現する実装が見つからないようです。まだ可能です。
UPDATE:ここ
は参照のための問題の写真です...
そして、ここでは、あなたが(おそらく)しているものの絵であるソリューションを修正期待して...のための
注:LIS 2番目のスクリーンショットの左側にさらにファイルが表示されます。
これを掘り下げた後、私はデフォルトのTreeViewItemテンプレートの欠陥とみなします。これを修正し、必要な調整を加えるには、独自のTreeViewItemテンプレートを用意する必要があります。 ... this SO answerからデフォルトツリービューアイテムのテンプレートを使用して、あなたのためにそれを行う必要があります
あなたはこれを変更する必要が...これに
<Trigger Property="HasItems" Value="false">
<Setter Property="Visibility" TargetName="Expander" Value="Hidden"/>
</Trigger>
...
<Trigger Property="HasItems" Value="false">
<Setter Property="Visibility" TargetName="Expander" Value="Collapsed"/>
</Trigger>
を開始。デフォルトでは、システムはエキスパンダーのために19ピクセルのスペースを残しています。エキスパンダーはリーフレベルでは不要なので、非表示にする必要はありません。
マージンが適用された 'TreeViewItem'をクリックすると、バックグラウンドはそれと共に移動しません。したがって、マージンが適用されていない背景色になります。 – gcso
私はあなたが選択したTreeViewItemのハイライトについて話していると仮定しています。もしそうなら、それは理にかなっています。最善の策はおそらくTreeViewItemスタイルをオーバーライドすることです。それはあなたにそれを完全に制御させるでしょう。ここにSOのサンプルがあります:http://stackoverflow.com/questions/4709450/custom-wpf-treeviewitem-style-is-behaving-incorrectly-when-databound –
ええ、私が投稿した元の回答はあまりにも単純すぎました。これを行う唯一の方法は、新しいTreeViewItemテンプレートを提供することです。私は正しい解決策で投稿を修正しました。 –