我還沒有嘗試過這一點,但你可以包括你的組頭裏面GridViewHeaderRowPresenters:
<GridViewHeaderRowPresenter
DataContext="{Binding View, RelativeSource={RelativeSource FindAncestor,ListView,1}}"
Columns="{Binding Columns}"
ColumnHeaderContainerStyle="{Binding ColumnHeaderContainerStyle}"
ColumnHeaderTemplate="{Binding ColumnHeaderTemplate}"
ColumnHeaderTemplateSelector="{Binding ColumnHeaderTemplateSelector}"
AllowsColumnReorder="{Binding AllowsColumnReorder}"
ColumnHeaderContextMenu="{Binding ColumnHeaderContextMenu}"
ColumnHeaderToolTip="{Binding ColumnHeaderToolTip}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
如果不起作用,一個安全可靠的方式來做到這一點是添加使用VisualBrush繪製的矩形可引用GridView頂部的一個且僅有的GridViewHeaderRowPresenter。
這可以通過在矩形上使用附加屬性來完成。當連接的屬性設置,它會註冊一個低優先級調度回調:
- 掃描了可視化樹到ListView
- 搜索,直到它找到GridViewHeaderRowPresenter
- 構建一個VisualBrush,並將其設置填充的矩形,並
的矩形本身將是這樣的:
<Rectangle HorizontalAlignment="Stretch"
Height="{Binding Fill.Visual.RenderHeight}"
my:GridViewHeaderHelper.SearchForHeaderRowPresenterAndSetFill="True" />
雷,非常感謝你,這是完美的!從答案中,你不可能要求太多,我將XAML複製到了我的組風格中,並且馬上就可以工作。質量。 順便說一句,我很高興在我的組頭中使用GridViewHeaderRowPresenter取得了訣竅,因爲您提供的第二個解決方案似乎相當多涉及... – Riko 2010-06-16 09:18:41