2012-03-09 2 views
2

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

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

imgur link

Line with outline and fill

ответ

6

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

<Border Width="100" Height="10" Background="#FFFFDAAD" BorderBrush="Orange" BorderThickness="0,3"/> 
+0

Да, это выглядит, как я могу получить вид я после, но мне действительно нужно привязать к x1, x2, y1, y2, как на линии. – DTig

+0

Вы можете привязать x1 к Canvas.Left и y1 к Canvas.Top границы. Для x2 и y2 вам необходимо реализовать ValueConverter для изменения x1, x2 в Width и y1, y2 в Height. – Stewbob

1

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

<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> 
1

У меня есть лучшее решение, чтобы сделать «контур "линия 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"/> 
Смежные вопросы