WPF를 처음 사용하고 확장기를 사용하여 드롭 다운 메뉴를 작성하려고합니다. 페이지 레이아웃은 Grid
으로 처리됩니다.현재 행을 확장하지 않고 WPF GridRow 내용을 다음 행으로 확장하는 방법
익스텐더는 그리드의 첫 번째 행 안에 있으며 클릭하면 확장기의 내용이 아래의 모든 내용 상단으로 확장됩니다. 안타깝게도 현재 전체 행이 펼쳐져 확장 된 컨트롤의 높이를 수용합니다.
ZIndex
이 Expander
인데 놀아 보았지만 효과가없는 것 같습니다. 상관없이 행은 항상 페이지의 다른 모든 항목을 강제로 확장하여 이동시킵니다.
<Expander FontSize="18" Name="moduleSelect" Width="100" Header=" Goto -> "
Background="#000033" MouseEnter="moduleSelect_MouseEnter"
MouseLeave="moduleSelect_MouseLeave" Foreground="White"
Grid.Column="0" Grid.ColumnSpan="3" Grid.Row="1" HorizontalAlignment="Left">
<StackPanel>
<Button Name="btnTasks" Width="100" Foreground="White"
Background="#000033">Tasks</Button>
<Button Name="btnNotes" Width="100" Foreground="White"
Background="#000033">Notes</Button>
</StackPanel>
</Expander>
그리드가 왜곡되지 않고 후속 행의 '위에서'확장되도록하려면 어떻게해야합니까?
확대기가 열려있는 동안 열의 모든 항목을 한 행 아래로 내리지 않습니까? –
@ 로버트, 안됩니다. 이것이 바로 Grid.RowSpan = "2"'의 핵심입니다. 그것은 객체를'Grid'의 두 행을 차지하게합니다. 그리드의 높이를 헤더의 높이로 설정하면 익스팬더를 열 때 모든 오버플로 (열린 상태의 항목)가 두 번째 행으로 이동합니다. – devuxer
@ 로버트, 방금 내 대답을 약간 수정했습니다. 나는 Z-order가 XAML에 무엇을 넣는가에 달려 있다고 생각한다. (당신이 원한다면 아마도 그것을 오버라이드 할 수 있을지 모르겠다.) 그래서 확장기 앞에'WhateverGoesInRow2'를 넣는다. 이렇게하면 확장자가 열려있을 때 다른 항목 위에 표시됩니다. – devuxer