Создать границу только с углами и пробелом между ними

#wpf #drawing

#wpf #рисование

Вопрос:

Я не знаю, как объяснить название, но у кого-нибудь есть идея, как я могу сделать красные углы без сетки. Возможно ли использовать только BorderBrush?


Редактировать:

                     <Grid>
                    <Grid.Resources>
                        <Style TargetType="{x:Type Path}">
                            <Setter Property="Stroke" Value="#FF006E8C"/>
                            <Setter Property="StrokeThickness" Value="1"/>
                            <Setter Property="RenderOptions.EdgeMode" Value="Aliased"/>
                        </Style>
                    </Grid.Resources>

                    <Canvas Width="8" Height="8" ClipToBounds="True" HorizontalAlignment="Left" VerticalAlignment="Top">
                        <Path Canvas.Left="1" Canvas.Top="1" Data="M0,8L0,0L8,0"/>
                    </Canvas>
                    <Canvas Width="8" Height="8" ClipToBounds="True" HorizontalAlignment="Right" VerticalAlignment="Top">
                        <Path Canvas.Left="0" Canvas.Top="1" Data="M0,0L8,0L8,8"/>
                    </Canvas>
                    <Canvas Width="8" Height="8" ClipToBounds="True" HorizontalAlignment="Left" VerticalAlignment="Bottom">
                        <Path Canvas.Left="1" Canvas.Top="0" Width="8" Height="8" Data="M8,8L0,8L0,0"/>
                    </Canvas>
                    <Canvas Width="8" Height="8" ClipToBounds="True" HorizontalAlignment="Right" VerticalAlignment="Bottom">
                        <Path Canvas.Left="0" Canvas.Top="0" Data="M8,0L8,8L0,8"/>
                    </Canvas>
                </Grid>
  

Комментарии:

1. Нарисовав 8 коротких линий в нужном месте.

2. Я не знаю почему, но позиции неправильно отображаются для правого, нижнего. Если параметры визуализации. EdgeMode=»Aliased»

3. Что именно вы имеете в виду «без сетки»?

4. Моей первой идеей было создать сетку из 2-х строк col 2 и поместить в нее контуры.

5. Но разве вы не говорили, что вам не нужна сетка? И что такое «Пути»?

Ответ №1:

Если вы не возражаете против использования Grid , как показывает ваш пример кода, вы можете использовать Border элементы управления и изменять их BorderThickness в зависимости от того, какой угол они представляют:

 <Grid>
    <Border
        VerticalAlignment="Top"
        HorizontalAlignment="Left"
        BorderThickness="1,1,0,0"
        BorderBrush="Red"
        Width="10" Height="10"
        />
    <Border
        VerticalAlignment="Top"
        HorizontalAlignment="Right"
        BorderThickness="0,1,1,0"
        BorderBrush="Red"
        Width="10" Height="10"
        />
    <Border
        VerticalAlignment="Bottom"
        HorizontalAlignment="Left"
        BorderThickness="1,0,0,1"
        BorderBrush="Red"
        Width="10" Height="10"
        />
    <Border
        VerticalAlignment="Bottom"
        HorizontalAlignment="Right"
        BorderThickness="0,0,1,1"
        BorderBrush="Red"
        Width="10" Height="10"
        />
    <TextBlock
        Text="Add"
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        />
</Grid>