Center a checkbox in a GridViewColumn?

I am currently trying to get my CheckBoxes to properly center my GridViewColumns.

I defined Stylefor my CheckBoxes like this:

<Style TargetType="{x:Type CheckBox}" x:Key="DataGridCheckBox">
    <Setter Property="HorizontalAlignment" Value="Center" />
    <Setter Property="HorizontalContentAlignment" Value="Center" />
    <Setter Property="IsEnabled" Value="False" />
    <Setter Property="Margin" Value="4" />
    <Setter Property="VerticalAlignment" Value="Center" />
    <Setter Property="VerticalContentAlignment" Value="Center" />
    <Setter Property="Width" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type GridViewColumn}},Path=ActualWidth}" />
</Style>

And my CheckBoxes are added in GridViewColumnusing DataTemplateas follows:

<GridViewColumn Header="Comment">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <CheckBox Style="{StaticResource DataGridCheckBox}" IsChecked="{Binding PropertyItem.Comment, Converter={StaticResource booleanConverter}, ConverterParameter='string'}"/>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

But the problem is that CheckBoxes remain left aligned (even when resizing the column).

Any ideas?

Thanks in advance,
Sonny

: CheckBox , , CheckBox. CheckBox, CheckBox, . . , ContentAlignment .

+3
1

HorizontalContentAlignment

ListViewItem <
<ListView ...>
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        </Style>
    <ListView.ItemContainerStyle>
    <!-- ... -->
</ListView>

Xaml, CheckBoxes. :)

<Grid>
    <ListView>
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            </Style>
        </ListView.ItemContainerStyle>
        <ListView.Resources>
            <Style TargetType="{x:Type CheckBox}" x:Key="DataGridCheckBox">
                <Setter Property="HorizontalAlignment" Value="Center" />
                <Setter Property="HorizontalContentAlignment" Value="Center" />
                <Setter Property="IsEnabled" Value="False" />
                <Setter Property="Margin" Value="4" />
                <Setter Property="VerticalAlignment" Value="Center" />
                <Setter Property="VerticalContentAlignment" Value="Center" />
                <Setter Property="Width" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type GridViewColumn}},Path=ActualWidth}" />
            </Style>
        </ListView.Resources>
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Comment">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox Style="{StaticResource DataGridCheckBox}" IsChecked="True"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
        <ListViewItem>Item1</ListViewItem>
        <ListViewItem>Item2</ListViewItem>
        <ListViewItem>Item3</ListViewItem>
    </ListView>
</Grid>
+11

Source: https://habr.com/ru/post/1781748/


All Articles