Avalonia icon indicating copy to clipboard operation
Avalonia copied to clipboard

How to fix DataGridHeader style

Open ntprohd opened this issue 1 year ago • 9 comments

Describe the bug

Separator of DataGridColumnHeader will clipped by header bound.

Theme

FluentTheme

Screenshots

If applicable, add screenshots to help explain your problem. Screenshot_1

Environment

  • OS: [ Windows]
  • Avalonia-Version: [11.0.5 or 11.0.6]

Code

<DataGrid Grid.Row="0" IsReadOnly="True" CornerRadius="3"
					  ItemsSource="{Binding Offers}"
					  GridLinesVisibility="All"
					  AutoGenerateColumns="False"
					  BorderThickness="1"
					  BorderBrush="Gray"
					  HorizontalAlignment="Stretch">
				<DataGrid.Resources>
					<x:Double x:Key="DataGridSortIconMinWidth">0</x:Double>
				</DataGrid.Resources>
				<DataGrid.Columns>
					<DataGridTextColumn Header="Name" Width="*" Binding="{Binding Name}"/>
					<DataGridTextColumn Header="Link" Width="*" Binding="{Binding Link}"/>
					<DataGridTextColumn Header="Limit" Width="*" Binding="{Binding Limit}"/>
					<DataGridTextColumn Header="Thread" Width="*" Binding="{Binding Thread}"/>
					<DataGridTextColumn Header="Delay" Width="*" Binding="{Binding Delay}"/>
					<DataGridTextColumn Header="User Agent" Width="*" Binding="{Binding UserAgent}"/>
					<DataGridTextColumn Header="Tools" Width="*" Binding="{Binding Tools}"/>
					<DataGridTextColumn Header="Proxy" Width="*" Binding="{Binding Proxy}"/>
					<DataGridTextColumn Header="Language" Width="*" Binding="{Binding Language}"/>
					<DataGridTextColumn Header="Referrer" Width="*" Binding="{Binding Referrer}"/>
					<DataGridTextColumn Header="Auto Start" Width="*" Binding="{Binding TimeAutoStart}"/>
					<DataGridTextColumn Header="Auto Stop" Width="*" Binding="{Binding TimeAutoStop}"/>
					<DataGridCheckBoxColumn Header="Auto Fake" Width="*" Binding="{Binding AutoFake}"/>
					<DataGridTextColumn Header="Network" Width="*" Binding="{Binding Network}"/>
					<DataGridTextColumn Header="Running" Width="*" Binding="{Binding Running}"/>
					<DataGridTextColumn Header="Success" Width="*" Binding="{Binding Success}"/>
					<DataGridTemplateColumn Header="Start" Width="*">
						<DataGridTemplateColumn.CellTemplate>
							<DataTemplate>
								<Button Content="Start" Margin="2" Background="{Binding BgStart}" Foreground="{Binding FgStart}" Command="{Binding ((vm:MainWindowViewModel)DataContext).StartOfferCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" CommandParameter="{Binding}" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center"></Button>
							</DataTemplate>
						</DataGridTemplateColumn.CellTemplate>
					</DataGridTemplateColumn>
					<DataGridTemplateColumn Header="Stop" Width="*" >
						<DataGridTemplateColumn.CellTemplate>
							<DataTemplate>
								<Button Content="Stop" Margin="2" Background="{Binding BgStop}" Foreground="{Binding FgStop}" Command="{Binding ((vm:MainWindowViewModel)DataContext).StopOfferCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" CommandParameter="{Binding}" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center"></Button>
							</DataTemplate>
						</DataGridTemplateColumn.CellTemplate>
					</DataGridTemplateColumn>
					<DataGridTemplateColumn Header="Edit" Width="*" >
						<DataGridTemplateColumn.CellTemplate>
							<DataTemplate x:DataType="vm:MainWindowViewModel">
								<Button Content="Edit" Margin="2" Command="{Binding ((vm:MainWindowViewModel)DataContext).EditOfferCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" CommandParameter="{Binding}" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center"></Button>
							</DataTemplate>
						</DataGridTemplateColumn.CellTemplate>
					</DataGridTemplateColumn>
					<DataGridTemplateColumn Header="Delete" Width="*" >
						<DataGridTemplateColumn.CellTemplate>
							<DataTemplate x:DataType="vm:MainWindowViewModel">
								<Button Content="Delete" Margin="2" Command="{Binding ((vm:MainWindowViewModel)DataContext).DeleteOfferCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" CommandParameter="{Binding}" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center"></Button>
							</DataTemplate>
						</DataGridTemplateColumn.CellTemplate>
					</DataGridTemplateColumn>
				</DataGrid.Columns>
</DataGrid>

ntprohd avatar Dec 28 '23 11:12 ntprohd

It's probably worth mentioning what theme you are using.

thevortexcloud avatar Dec 28 '23 12:12 thevortexcloud

It's probably worth mentioning what theme you are using.

i am using FluentTheme

ntprohd avatar Dec 28 '23 12:12 ntprohd

@thevortexcloud I guess it's a rounding issue. We had some similar fixed earlier

timunie avatar Dec 28 '23 13:12 timunie

web had same issue here.

RentonIssac avatar Feb 27 '24 02:02 RentonIssac

I think it was already fixed on nightly builds. Can somebody check?

maxkatz6 avatar Feb 27 '24 04:02 maxkatz6

Not fixed yet in version: 11.0.9 I didn't see any commit about this issue by now.

RentonIssac avatar Feb 29 '24 09:02 RentonIssac

@maxkatz6 it's still present in case you use Width="*". Tested using nightly.

timunie avatar Mar 06 '24 13:03 timunie

bump

2 different resolution / DPI monitors help representing issue.

RentonIssac avatar Apr 28 '24 02:04 RentonIssac

it's still present. Tested using nightly.

RentonIssac avatar May 14 '24 01:05 RentonIssac

As possible workaround, you may set property UseLayoutRounding to False in the style for DataGridColumnHeader.

dif-sam avatar Jun 17 '24 16:06 dif-sam