2010-03-11 38 views
6

Tôi muốn thay đổi căn chỉnh của một tiêu đề trên một DataGrid trong Silverlight, và tôi dường như không thể tìm ra cách để làm điều đó. Dưới đây là những gì tôi có cho đến thời điểm này:Silverlight DataGrid Header Horizontal Alignment

<data:DataGridTextColumn Header="#" 
          IsReadOnly="True" 
          ElementStyle="{StaticResource CenterAlignStyle}" 
          Binding="{Binding OutlineNumber, Mode=OneWay}" > 
    <data:DataGridTextColumn.HeaderStyle> 
     <Style TargetType="prim:DataGridColumnHeader"> 
     <Setter Property="HorizontalAlignment" Value="Center"/> 
     </Style> 
    </data:DataGridTextColumn.HeaderStyle> 
    </data:DataGridTextColumn> 

Không có vấn đề gì tôi cố gắng, dường như tôi không thể thay đổi căn chỉnh mặc định, có vẻ như "còn lại".

+0

Tôi gặp sự cố tương tự. Bất kỳ may mắn với điều này chưa? –

Trả lời

9

Bạn đã thực sự gần gũi, nó: -

<Setter Property="HorizontalContentAlignment" Value="Center"/> 
+0

Thực ra, tính năng này hoạt động! Tôi đã không nhận ra nó bởi vì tôi đã không thay đổi kích thước cột để thấy rằng văn bản không ở lại phù hợp với bên phải trên tiêu đề. Cám ơn rất nhiều! –

2

lẽ thêm padding để làm cho nó trông tốt hơn ...

<Style x:Key="HeaderCenter" 
      TargetType="dataPrimitives:DataGridColumnHeader"> 
     <Setter Property="HorizontalContentAlignment" 
       Value="Center" /> 
     <Setter Property="HorizontalAlignment" 
       Value="Stretch" /> 
     <Setter Property="Padding" 
       Value="12,2,2,2" /> 
    </Style> 
0

Dường như cách tiếp cận này sorta làm việc nhưng bạn sẽ có được tiêu đề mặc định , Sắp xếp đúng. Tôi có một kiểu tài nguyên tĩnh cho datagridcolumnheader và I chỉ muốn thay đổi căn chỉnh để lại tất cả các phần tử kiểu khác như được chứa trong kiểu tùy chỉnh. Cho đến nay tôi có:

xmlns:sdk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
xmlns:prim="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"

<sdk:DataGrid x:Name="ServicesDataGrid" Width="Auto" Margin="15,5,5,5" ColumnHeaderStyle="{StaticResource DataGridColHeaderStyle}" ...... 

<sdk:DataGridTextColumn Header="Gross Amt" Binding="{Binding GrossAmount,StringFormat=n2}" ElementStyle="{StaticResource RightAlignStyle}"> <sdk:DataGridTextColumn.HeaderStyle> <Style TargetType="prim:DataGridColumnHeader"> <Setter Property="HorizontalContentAlignment" Value="Right"/> </Style> </sdk:DataGridTextColumn.HeaderStyle> </sdk:DataGridTextColumn>

Thay đổi kích thước lưới hiển thị văn bản như vậy là hợp thẳng hàng nhưng phông chữ, nền, vv là không được định nghĩa trong DataGridColHeaderStyle

Cảm ơn

Các vấn đề liên quan