locked
DataGrid の ColumnHeader で列名を中央に配置したい RRS feed

  • 質問

  • LightSwitch に関する質問として書き出していますが、
    LightSwitch v1 では実現できないそうなので、
    Silverlight での実現方法 をお聞きしたい。


    LightSwitch で DataGrid を作り、
    データの Text Alignment を Center にすると以下のようになります。




    ColumnHeader の列名 "Name" だけが中央になっていません。

    中央に配置するにはどうするか、ご存知のかたいらっしゃいませんか?




    • 編集済み custar 2012年2月15日 12:30
    2012年2月14日 18:41

回答




  • Center になってないのは、WinForm の時と同じで、
    Sort の際に出てくる上下アイコン用スペース確保のため。




    private void bDataGrid_Loaded(object sender, RoutedEventArgs e)
    {
    	Style headerStyle = new Style();
    	headerStyle.TargetType = typeof(DataGridColumnHeader);
    
    	Setter setter = new Setter();
    	setter.Property = HorizontalContentAlignmentProperty;
    	setter.Value = HorizontalAlignment.Center;
    
    	headerStyle.Setters.Add(setter);
    	bDataGrid.Columns[1].HeaderStyle = headerStyle;
    }

    なるほど。
    xaml のタグをそのままコードにしただけだね。


    • 編集済み custar 2012年2月17日 1:13
    • 回答としてマーク custar 2012年2月29日 11:56
    2012年2月17日 1:11

すべての返信