データグリッドの列ヘッダーに、キャンバスを配置します。これは、列の左端に配置されています。すなわち、列とコントロールの間に余白がありません。ただし、列とコントロールの間には常にスペースがあります。私はどのように絵の中の小さな隙間を取り除くのかと思っていますか?背景色(ItemsControl = LightBlue、Canvas = LemonChiffon)が表示されない理由は同じですが、同じ理由があると思います。DataGrid ColumnHeaderの書式マージン/パディング
所望の設計は、次のようになります。ここでは
は私のコードです:
に-5所望のデザインが表示されないマージンを設定<Grid DataContext="{StaticResource vmJp}">
<DataGrid x:Name="dgProj" AutoGenerateColumns="False" IsReadOnly="True" CanUserAddRows="False" Margin="10" ItemsSource="{Binding Baustellen}" BorderThickness="0" HeadersVisibility="Column" Padding="0">
<DataGrid.Columns>
....
<DataGridTemplateColumn Width="1*" x:Name="coPlanung">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding DataContext.Monate, ElementName=dgProj}" Margin="0" VerticalAlignment="Center" Background="LightBlue">
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left">
<Setter.Value>
<MultiBinding Converter="{StaticResource d2x}">
<Binding Path="Date" Mode="OneWay" />
<Binding Path="ActualWidth" ElementName="coPlanung" Mode="OneWay"/>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Width="{Binding ActualWidth, ElementName=coPlanung}" Margin="0" Background="LemonChiffon"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<!--Monthnames-->
<TextBox Text="{Binding Path=Date, StringFormat={}{0:MMM-yyyy}, Mode=OneWay}" HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" Margin="0">
<TextBox.Width>
<MultiBinding Converter="{StaticResource d2b}">
<Binding Path="Date" Mode="OneWay" />
<Binding Path="ActualWidth" ElementName="coPlanung" Mode="OneWay"/>
</MultiBinding>
</TextBox.Width>
</TextBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
:
コード
<DataGridTemplateColumn x:Name="coPlanung">
<DataGridTemplateColumn.HeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="-5"/>
</Style>
</DataGridTemplateColumn.HeaderStyle>
<DataGridTemplateColumn.HeaderTemplate>
...
ソリューション:、それはDataGrid
プロパティは-5 ContentPresenter
<Style TargetType="ContentPresenter">
<Setter Property="Margin" Value="-5"/>
私は質問を更新しましたが、うまくいかなかったのですが、正しい方向に私を指摘しました。ありがとうございます。あなたがあなたの答えを更新したら、それを答えとして受け入れます。 –
私は答えを更新しました。どのバージョンのWindowsをお使いですか? – mm8
私はwindows 10を使用しています。すべてのクライアントがwin 10でも実行されているので、私はそれに焦点を当てませんでした。これはどういうわけか考えなければなりませんか? –