2010-03-12 12 views
6

Grid gibi bir mizanpaj konteynerinin içindeki bir çizgiyi hizalamak için XAML'de (herhangi bir C# kodu olmadan) bir Satır oluşturmak mümkün mü? İsterdim Saf XAML'de, bir Kılavuzun bir kısmıyla hizalanacak bir Satır elde etmek mümkün mü?

etkili bir olması:

<Grid> 
    <Line StrokeThickness="1" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Bottom" 
      Stroke="Red"/> 
</Grid> 

aksi halde ben sadece "0,0,0,1" olarak ayarlanmış BorderThickness ile Border denetimi kullanmak istiyorsunuz, StrokeDashArray ve StrokeDashOffset kullanmak gerekir ...

için teşekkürler herhangi bir fikir!

cevap

10

, bu benim için çalışıyor: Ayrıca bir Line ile aynı şey olabilir

<Path StrokeThickness="1" 
HorizontalAlignment="Stretch" 
VerticalAlignment="Bottom" 
Data="M0,0 L1,0" 
Stretch="Fill" 
StrokeEndLineCap="Square" 
StrokeStartLineCap="Square" 
Stroke="Red"/> 

:

<Line StrokeThickness="1" 
HorizontalAlignment="Stretch" 
VerticalAlignment="Bottom" 
X2="1" 
Stretch="Fill" 
StrokeEndLineCap="Square" 
StrokeStartLineCap="Square" 
Stroke="Red"/> 
+1

Teşekkürler - oldukça iyi ve sorumu ifadeli olarak yanıtlıyor. Cevaplandı olarak işaretleme. Ancak, gerçekten bir metin bloğu için süslü alt çizgi taklit etmek için bunu kullanmak istiyorum, bu yüzden kapsayıcıyı doldurmak için gerekenden daha büyük germesini istemiyorum. –

+0

Kaptan daha geniş olacağını mı söylüyorsun? Bu aslında sizin için işe yaramayacaksa, daha spesifik bir soru (ve buradan bağlantıya) oluşturmanız gerekir. – Gabe

+0

@Gabe 'Stretch = Fill', 'StrokeDashArray' öğesini ve ilgili özellikleri noktalı/kesikli bir çizgi oluşturmak için kullanamazsa, Stretch = Fill'in bunu daha da zorlaştırmasıdır, çünkü nokta/tire "döşemesi" yerine "germek" olacaktır. – Livven

1

Bunu yardımcı olur bu

<Grid x:Name="LayoutRoot" Background="White"> 

<Path Fill="Red" Stretch="Fill" Stroke="Black" StrokeDashArray="1" Height="4" Margin="8,0,7,7" VerticalAlignment="Bottom" UseLayoutRounding="False" Data="M8,127 L457,127" StrokeThickness="13"/> 

</Grid> 

Hope gibi Path kullanmam gerekiyor. İfade Karışımı, bu tür Zorluklar veya VS 2010 RC1 (Şimdilik) için olmalıdır (Şimdilik)

1

Bu nasıl? kanchirk tepki ayrıntılı için

<Line x:Name="line" 
StrokeThickness="1" 
HorizontalAlignment="Stretch" 
VerticalAlignment="Bottom" 
Stroke="Red" 
X2="{Binding ActualWidth, ElementName=line, Mode=OneWay}" 
Stretch="Fill" 
StrokeStartLineCap="Square" 
StrokeEndLineCap="Square"/> 
+0

Bağlama ilginç, teşekkürler. Performans nedenlerinden dolayı onu kullanmak için yorgunum. –

+0

Bu kod benim için çalışmıyor. – Gabe

+0

@gabe, haklısınız. Stretch, StrokeStartLineCap ve StrokeEndLineCap'ı özledim. Şimdi iyi olacak. Her neyse, çözümünüz herkes için daha iyi. : D – Gongdo