0

下の画像を参照してください...

ここに画像の説明を入力

これは、QT を使用して c++ で作成されたアプリケーションのスクリーン ショットです。DataGrid ヘッダーの外側の垂直エッジにグラデーションの境界線を追加して、同様の外観を作成する必要がありますが、これを実現できる DataGrid のプロパティが表示されません。以下の DataGridColumnHeader スタイルを使用して、外側の端の境界線を引いた後の外観を達成しました。これらの境界線をヘッダーの外側にのみ追加するにはどうすればよいですか?

<Style TargetType="{x:Type DataGridColumnHeader}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="DataGridColumnHeader">
                <Border BorderBrush="{StaticResource ContentPanelHeaderBackgroundBrush}" 
                        BorderThickness="0,1,0,0"
                        CornerRadius="2,2,0,0">
                    <DockPanel Background="{StaticResource ContentPanelHeaderBackgroundBrush}" Width="auto">
                        <Border BorderThickness="0,1,0,0" DockPanel.Dock="Bottom" BorderBrush ="{StaticResource ContentPanelBottomBorderBrush}" />
                            <Grid Height="22">
                                <Grid.ColumnDefinitions>
                                     <ColumnDefinition Width="*" />
                                     <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
                                <ContentPresenter VerticalAlignment="center" Margin="4" />
                            </Grid>
                    </DockPanel>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property="Padding" Value="4,0,4,0" />
    <Setter Property="Foreground" Value="{StaticResource FontActiveBrush}" />
    <Setter Property="FontFamily" Value="{StaticResource MainFont}" />
    <Setter Property="FontSize" Value="11" />
    <Setter Property="SnapsToDevicePixels" Value="True" />
    <Setter Property="HorizontalContentAlignment" Value="Left" />
    <Setter Property="MinWidth" Value="0" />
    <Setter Property="Height" Value="22" />
    <Setter Property="Cursor" Value="Hand" />
</Style>
4

1 に答える 1

0

Snoop のようなツールを使用して、実行時に XAML ツリーを検査することをお勧めします。デフォルトのテンプレートが適用されているツリーのどこかに追加のアイテムがレンダリングされているようです。ツリー内のすべてのデフォルト テンプレートを上書きするわけではないので、この方法で適切な要素を見つけることができると思います (背景または境界線が黒のアイテムを探す必要があります)。

ツールはこちらにあります: http://snoopwpf.codeplex.com/

于 2013-08-18T10:17:49.370 に答える