2012-03-09 6 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

はい、それが見えます。 – DTig

+0

x1をCanvas.Leftにバインドし、y1を境界のCanvas.Topにバインドできます。 x2とy2については、x1、x2を幅に、y1、y2を高さに変更するためにValueConverterを実装する必要があります。 – 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以上の 『シンプル』の行は:私は私が後だ外観を得ることができますが、私は本当にライン上のようにX1、X2、Y1、Y2にバインドする必要があるよう

 <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"/> 
関連する問題