Линия с заливкой и обводкой - PullRequest
2 голосов
/ 10 марта 2012

Я пытаюсь создать строку, которая выглядит следующим образом в wpf.

У кого-нибудь есть идеи, как это сделать?Мне нужно связать координаты x и y, чтобы линия работала очень хорошо, за исключением того, что я не могу сделать так, чтобы она выглядела так.

Ответы [ 3 ]

6 голосов
/ 10 марта 2012

Вы не можете сделать это с помощью простой линии, но с объектом Border это очень просто.

<Border Width="100" Height="10" Background="#FFFFDAAD" BorderBrush="Orange" BorderThickness="0,3"/>
1 голос
/ 13 июня 2017

У меня есть лучшее решение, сделайте для "контурной" линии StrokeThickness больше, чем для "простой" линии:

      <Line x:Name="borderLine" X1="0" X2="400" Y1="0" Y2="0" StrokeThickness="1" Stroke="White"/>
      <Line x:Name="borderOutlineLine" X1="0" X2="400" Y1="0" Y2="0" StrokeThickness="0.3" Stroke="Black"/>
1 голос
/ 28 мая 2015

Вы можете наложить несколько Линий, Полилиний или Полигонов для достижения аналогичных эффектов и использовать ресурсы, чтобы избежать дублирования, например (только вдохновение):

<Canvas ClipToBounds="True" Height="200" Width="200">
    <Canvas.Resources>
        <PointCollection x:Key="Wings">0,-2 62,-2 62,22 58,22 58,2 0,2</PointCollection>
    </Canvas.Resources>
    <Polygon Points="{StaticResource Wings}" Fill="Black" Stroke="White" StrokeThickness="4"/>
    <Polygon Points="{StaticResource Wings}" StrokeThickness="8" Stroke="White"/>
    <Polygon Points="{StaticResource Wings}" StrokeThickness="4" Stroke="Red"/>
</Canvas>
...