В чистом XAML действительно ли возможно заставить Строку выравниваться к части Сетки?

Действительно ли возможно создать Строку в XAML (без какого-либо кода C# позади) для выравнивания строки в контейнере макетов, таком как Сетка?

Я хотел бы эффективно иметь:

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

Я должен использовать StrokeDashArray и StrokeDashOffset, иначе я просто использовал бы a Border управление с BorderThickness установило на "0,0,0,1"...

Спасибо за любые идеи!

6
задан Jeff Wilcox 12 March 2010 в 05:03
поделиться

3 ответа

Чтобы уточнить ответ kanchirk, вот что работает для меня:

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

Вы можете сделать то же самое с Line:

<Line StrokeThickness="1" 
 HorizontalAlignment="Stretch"   
 VerticalAlignment="Bottom" 
 X2="1" 
 Stretch="Fill" 
 StrokeEndLineCap="Square" 
 StrokeStartLineCap="Square" 
 Stroke="Red"/>
10
ответ дан 9 December 2019 в 20:42
поделиться

Как насчет этого?

<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"/> 
1
ответ дан 9 December 2019 в 20:42
поделиться

Я думаю, что вам нужно использовать Path так

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

Надеюсь, это поможет. Expression Blend является обязательным для такого рода задач или даже VS 2010 RC1 (на данный момент)

1
ответ дан 9 December 2019 в 20:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: