gpt4 book ai didi

wpf - 如何用网格填充数据网格文本列标题中的所有空间?

转载 作者:行者123 更新时间:2023-12-02 00:01:47 24 4
gpt4 key购买 nike

我对 wpf 非常陌生,并且在列标题中的某些格式方面遇到了问题。我想要一个带有我的标题的文本 block ,以及我的标题中的一个最终将成为过滤器功能的按钮。到目前为止我写的:

<DataGrid ItemsSource="{Binding diagrams}" SelectedItem="{Binding selectedDiagram, Mode=TwoWay}" AutoGenerateColumns="False" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,25,0,0" Height="450" Width="746">
<DataGrid.Columns>
<DataGridTextColumn Width="Auto" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Binding="{Binding iD}">
<DataGridTextColumn.Header>
<Grid> # <--Problems in here
<Grid.ColumnDefinitions> #
<ColumnDefinition/> #
<ColumnDefinition/> #
</Grid.ColumnDefinitions> #
<TextBlock Text="ID" HorizontalAlignment="Left" Grid.Column="0"/>
<Button Content="^" HorizontalAlignment="Right" Grid.Column="1"/>
</Grid>
</DataGridTextColumn.Header>
</DataGridTextColumn>
<DataGridTextColumn Header="Description" Width="Auto" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Binding="{Binding description}"/>
<DataGridTextColumn Header="Date Changed" Width="Auto" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Binding="{Binding dateChanged}"/>
<DataGridTextColumn Header="Created By" Width="Auto" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Binding="{Binding createdBy}"/>
<DataGridTextColumn Header="Type" Width="Auto" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Binding="{Binding type}"/>
</DataGrid.Columns>
</DataGrid>

最终网格只占用了所需的最小空间,并且标题和按钮直接并排。正如您可能已经从我在文本 block 和按钮中的对齐方式中猜到的那样,我希望它们位于列标题的相对两侧,或者至少有些分开。

我意识到网格不能是星形大小来填充可用空间,stackpanel 或 dockpanel 也不能(我的直觉告诉我,我对这个想法有一些根本性的错误,但我还是一个完全的新手)

我不能真正规定标题或网格的标准大小,因为填充列的文本长度可能会有很大差异,尽管我尽了最大努力,但我仍然找不到强制网格填充空白空间的方法。任何人都可以帮忙吗?最好用小词?

最佳答案

我有一个稍微改进的答案,它帮助了我并且更简单/更清洁。
在 Column 上,设置 HeaderStyle... 对于您的示例,如下所示:

                                        <DataGridTextColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</DataGridTextColumn.HeaderStyle>
不需要模板,它会拉伸(stretch)以填充。

关于wpf - 如何用网格填充数据网格文本列标题中的所有空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com