在我的项目中,我想要datagrid行标题值(如Outlook日历)。假设它是9.00、9.30、10.00、10.30 ....,但它不是固定的,则可能会有所不同,.. 9.00 pm,10.00 pm。
我为此使用两个TextBlock,我也得到了几乎相同的形状。但是我的值是固定的,即1-00、1-00、1-00、1-00、1-00、1-00 .....
我的代码
<DataGrid AutoGenerateColumns="False" Height="560" HorizontalAlignment="Left" Margin="30,54,0,0" Name="myDataGrid" VerticalAlignment="Top" Width="884" MouseDoubleClick="myDataGrid_MouseDoubleClick" IsEnabled="True" SelectionUnit="Cell">
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock Text="1" Foreground="#9493CF" FontSize="16" />
<TextBlock Text="00" Foreground="#9493CF" />
</StackPanel>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
<DataGrid.ContextMenu>
<ContextMenu x:Name="LeftClickMenu">
<MenuItem Header="New Appointment" Click="MenuItem_Click"/>
<!--<MenuItem Header="Save"/>
<MenuItem Header="Print"/>-->
<Separator/>
<MenuItem Header="Exit"/>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
我想要的是 -
我得到了什么-
您可以negative top margin
在第二个textBlock上指定:
<TextBlock Text="00" Foreground="#9493CF" Margin="1,-5,0,0"/>
负边距输出为:
无边距输出:
更新:
如果您希望标头可自定义,则需要说one property in your model class
(表示row的对象)Time
,这对于不同的行将有所不同。对于第一行,时间值将为9,第二个为10,依此类推。
然后,您可以像这样绑定到该属性:
<StackPanel Orientation="Horizontal" VerticalAlignment="Center"
HorizontalAlignment="Center">
<TextBlock Text="{Binding Path=DataContext.Time,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType=DataGridRowHeader}}"
Foreground="#9493CF" FontSize="16" />
<TextBlock Text="00" Foreground="#9493CF" />
</StackPanel>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句