WPF Нежелательные поля вокруг пути - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь создать свой собственный символ квадратного корня, который будет автоматически изменять размер в соответствии с его содержанием.По аналогии с https://www.symbolab.com. Я использую XAML в WPF.

На данный момент символ квадратного корня выглядит следующим образом:

Root symbol

Проблема заключается в расстоянии между первым столбцом и вторым столбцом сетки, которые оба содержат элемент пути, используя те, которые я рисую в виде корневого значка.Есть небольшое пространство, которое делает линию дискретной (непрерывной).

Я не могу заставить ее исчезнуть.Кажется, что элемент Path создает его.

Могу ли я что-нибудь с этим сделать?Я также приму любые другие идеи, как создать требуемый элемент (символ квадратного корня).

Вот код:

<UserControl x:Class="GUICalculator.View.CustomTextBox"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:GUICalculator.View"
         mc:Ignorable="d" 
         d:DesignHeight="35" d:DesignWidth="40"
         Background="White">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <Grid Grid.Column="0" x:Name="TrackSurface" Margin="5,5,0,5">
        <Path Stretch="Fill" Stroke="Black" StrokeThickness="2" 
                  Data="M0,10 L 5,14 L 14,0 L 15, 0">
        </Path>
    </Grid>
    <Grid Grid.Column="1">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition/>
        </Grid.RowDefinitions>

        <Path VerticalAlignment="Bottom" Grid.Row="0" Height="6" HorizontalAlignment="Stretch" Stretch="Fill" Stroke="Black" StrokeThickness="2" 
                  Data="M 0,50 L 100,50">
        </Path>

        <TextBox Grid.Row="1" Margin="3" Text="4" />
    </Grid>
</Grid>

Редактировать: Мне удалось обойти проблему, установив отрицательное поле для пути.Я думаю, что все еще может быть лучшее решение, хотя.

Редактировать Как подсказывает @Clemens в комментариях, есть свойства, которые можно установить для элемента пути: StrokeStartLineCap="Square" и StrokeEndLineCap="Square",Работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...