我是WPF新手,我試圖使用擴展器構建下拉菜單。頁面佈局正在使用Grid
進行處理。如何在不擴展當前行的情況下將WPF GridRow內容擴展到下一行
擴展器位於網格的第一行內,我希望擴展器的內容在點擊時展開在下面所有內容的頂部。不幸的是,現在,整行被擴展以適應擴展控件的高度。
我試着玩的ZIndex
,但它似乎沒有任何效果。無論如何,該行總是擴展,強制頁面上的其他所有內容移動。
<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>
如何在不扭曲網格的情況下在後續行上方展開'上方'?
擴展器打開時,不會將列中的所有內容都壓低一行嗎? – 2010-01-29 21:54:51
@Robert,它不應該。這就是整個點'Grid.RowSpan =「2」'。它使一個對象佔據'Grid'的兩行。通過將網格的高度設置爲標題的高度,當您打開擴展器時,所有溢出(彈出的東西)將進入第二行。 – devuxer 2010-01-29 22:14:16
@羅伯特,我只是對我的答案做了一個小小的修改。我認爲Z順序依賴於你先放在你的XAML中(儘管你可以重寫它,如果你願意的話),所以我把「WhateverGoesInRow2」放在擴展器之前。這應該使擴展器在打開時出現在其他東西上方。 – devuxer 2010-01-29 22:19:05