我正在将一个带有图像的单个按钮放置在DataGrid列的标题中。单元格模板也只是一个带有图像的简单按钮。
当渲染时,标题栏仅在右侧具有大约10-15像素的填充,这会导致单元格以该宽度明显呈现,使单元格按钮两侧留有空白。作为一个完美主义者,这让我非常烦恼。最初我认为这是用于排序时显示的箭头的空间,但我已在整个DataGrid和列上明确禁用了排序。
这是一张图片: http://img716.imageshack.us/img716/1787/68487749.png 我认为这是来自按钮父元素的填充。有没有人知道消除它的方法?
<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-15像素的填充,这会导致单元格以该宽度明显呈现,使单元格按钮两侧留有空白。作为一个完美主义者,这让我非常烦恼。最初我认为这是用于排序时显示的箭头的空间,但我已在整个DataGrid和列上明确禁用了排序。
这是一张图片: http://img716.imageshack.us/img716/1787/68487749.png 我认为这是来自按钮父元素的填充。有没有人知道消除它的方法?
参见:
解决方案:
<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>
DataGridHeaderBorder
中,它持有ContentPresenter
(Button
的父级)。没有任何属性表明填充的来源。唉。 - Jake Wharton