WPF Path Некорректное отображение

Рейтинг: 2Ответов: 1Опубликовано: 29.07.2023

Я создаю стиль кнопки, которая должна содержать прямую линию:

<Style TargetType="{x:Type Button}">
    <Setter Property="OverridesDefaultStyle" Value="True"/>
    <Setter Property="SnapsToDevicePixels" Value="True"/>
    <Setter Property="UseLayoutRounding" Value="True"/>
    <Setter Property="Background" Value="White"/>
    <Setter Property="Width" Value="50"/>
    <Setter Property="Height" Value="30"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Grid Background="{TemplateBinding Background}">
                    <Path x:Name="Mark" Stroke="Black" StrokeThickness="1" Data="M0,0 L10,0" VerticalAlignment="Center" HorizontalAlignment="Center"
                          SnapsToDevicePixels="True" UseLayoutRounding="True"/>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background" Value="#D2D2D2"/>
                    </Trigger>
                    <Trigger Property="IsPressed" Value="True">
                        <Setter Property="Background" Value="#C8C8C8"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Но вместо черты шириной в 1px я всегда получаю черту шириной 2px:

введите сюда описание изображения

Подробнее: введите сюда описание изображения

Я пробовал использовать и не использовать UseLayoutRounding="True", SnapsToDevicePixels="True", RenderOptions.BitmapScalingMode="Fant", RenderOptions.EdgeMode="Aliased" но ничего из этого не влияет на отображение в данном случае - черта всегда 2px. Подскажите, как исправить?

Ответы

▲ 0Принят

Решение заключается в следующей комбинации значений: RenderOptions.EdgeMode="Aliased", UseLayoutRounding="False", SnapsToDevicePixels="False".