DataGridTemplateColumn top margin / padding - PullRequest
0 голосов
/ 16 марта 2012

У меня есть StackPanel в моем DataGridTemplateColumn.Кажется, я не могу найти способ убрать поле сверху в этой ячейке.

Вот код, который я использую:

        <DataGridTemplateColumn IsReadOnly="True" Header="Description">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <StackPanel>
                        <StackPanel.Resources>
                            <Style TargetType="{x:Type Label}">
                                <Setter Property="FrameworkElement.Margin" Value="0,0,0,-10" />
                            </Style>
                        </StackPanel.Resources>
                        <Label Content="{Binding Description1}" />
                        <Label Content="{Binding Description2}" />
                    </StackPanel>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>

Поле, похоже, отDataGridTemplateColumn, а не StackPanel, поскольку над ним находится только первая метка.

1 Ответ

0 голосов
/ 16 марта 2012

Маржа на самом деле на вашем Labels, а не на StackPanel. Просто удалите стиль для своих ярлыков, который устанавливает нижнее поле на отрицательный, и он будет работать правильно.

Кажется, что отрицательное поле применяется после визуализации объекта и может заставить элемент управления переместиться из существующих границ, установленных для него. В вашем случае Labels рендерится, а затем оба уменьшаются на 10px

...