Code/WPF

WPF TreeViewItem Stretch

Segel 2021. 10. 15. 01:45

문제:

    TreeView의 HorizontalContentAlignment를 Stretch로 지정해도 TreeViewItem의 Header가 여전히 최소 Width에 고정되어있음

 

원인:

    TreeViewItem의 내부 구조는 3 * 2 Grid로 되어 있음
    Header가 하나의 Column에만 위치해있고 TreeViewItem의 Width가 변화해도 해당 Column의 Width는 변화하지 않음
    Header의 ColumnSpan을 변경해 이를 해결할 수 있음

 

해결:

<TreeView x:Name="TreeCat" Grid.Row="1" Background="AliceBlue" HorizontalContentAlignment="Left">
    <TreeView.Resources>
        <Style TargetType="TreeViewItem">
            <Style.Resources>
                <Style TargetType="{x:Type Border}"> <!--Header는 Border 컨트롤로 이루어져 있음-->
                    <Setter Property="Grid.ColumnSpan" Value="2"/>
                </Style>
            </Style.Resources>
        </Style>
    </TreeView.Resources>
    
    <d:TreeViewItem Header="test1" IsExpanded="True">
        <TreeViewItem Header="test12" Height="30" />
        <TreeViewItem Header="test13"/>
        <TreeViewItem Header="test11" BorderThickness="1" BorderBrush="Black"/>
    </d:TreeViewItem>

    <d:TreeViewItem Header="test2" IsExpanded="True">
        <TreeViewItem Header="test21"/>
        <TreeViewItem Header="test22"/>
        <TreeViewItem Header="test23"/>
    </d:TreeViewItem>
</TreeView>

 

https://stackoverflow.com/a/30829770/13031224

 

Highlight whole TreeViewItem line in WPF

If I set TreeViewItem Background it highlights the header only. How can I highlight the whole line? I have found a post almost solving a problem http://social.msdn.microsoft.com/Forums/en-US/wpf/...

stackoverflow.com

 

반응형

'Code > WPF' 카테고리의 다른 글

WPF Binding 디버깅  (0) 2021.11.12
작업표시줄/Alt+Tab 에서 Window 숨기기  (0) 2021.10.27
Visibility와 Focus  (0) 2021.10.17
WPF XamlParseException 버그?  (0) 2021.09.30
WPF DragDrop이 작동하지 않음  (0) 2021.09.25
WPF MouseUp시 입력된 버튼 찾기  (0) 2021.09.01
WPF 마우스 이벤트가 작동하지 않는 문제  (0) 2021.08.26
WPF 최대화 문제  (0) 2021.08.21