Я помещаю одну кнопку с изображением в заголовок столбца DataGrid.Шаблон ячейки также представляет собой простую кнопку с изображением.
<my:DataGridTemplateColumn>
<my:DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<Button ToolTip="Add New Template" Name="AddNewTemplate" Click="AddNewTemplate_Click">
<Image Source="../Resources/add.png"/>
</Button>
</DataTemplate>
</my:DataGridTemplateColumn.HeaderTemplate>
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button ToolTip="Edit Template" Name="EditTemplate" Click="EditTemplate_Click" Tag="{Binding}">
<Image Source="../Resources/pencil.png"/>
</Button>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
При визуализации заголовок имеет примерно 10-15px отступа только на правой стороне, что приводит к тому, что ячейки явно отображаются на этой ширине, оставляякнопка ячейки, имеющая пустое пространство с обеих сторон.Быть пиксель-перфекционистом это чертовски раздражает меня.Сначала я думал, что это место для стрелок, отображаемых при сортировке, но у меня отключена сортировка как для всей DataGrid, так и для столбца.
Вот изображение: http://img716.imageshack.us/img716/1787/68487749.png
IПредположим, что это отступ от того, что является родительским элементом кнопки.Кто-нибудь знает способ его устранения?
См .:
Решение:
<my:DataGrid.Resources>
<Style x:Key="addHeader" TargetType="{x:Type myp:DataGridColumnHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type myp:DataGridColumnHeader}">
<Button ToolTip="Add New Template" Name="AddNewTemplate" Click="AddNewTemplate_Click" Margin="4">
<Image Source="../Resources/add.png"/>
</Button>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</my:DataGrid.Resources>
<my:DataGrid.Columns>
<my:DataGridTemplateColumn HeaderStyle="{StaticResource addHeader}">
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button ToolTip="Edit Template" Name="EditTemplate" Click="EditTemplate_Click" Tag="{Binding}">
<Image Source="../Resources/pencil.png"/>
</Button>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
</my:DataGrid.Columns>