代码之家  ›  专栏  ›  技术社区  ›  Jeff Wilcox

在纯xaml中,是否可以得到一条线来对齐网格的一部分?

  •  6
  • Jeff Wilcox  · 技术社区  · 14 年前

    是否可以在xaml中创建一行(后面没有任何c代码)来对齐布局容器(如网格)中的行?

    我想有效地:

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

    我需要使用 StrokeDashArray StrokeDashOffset ,否则我将使用 Border 控件的边框厚度设置为 "0,0,0,1"

    谢谢你的意见!

    3 回复  |  直到 14 年前
        1
  •  10
  •   Gabe Timothy Khouri    14 年前

    为了详细说明坎奇克的回答,这对我很有用:

    <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"/>
    
        2
  •  1
  •   kanchirk    14 年前

    我想你需要用 路径 这样地

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

    希望这有帮助。对于这种挑战,甚至VS2010 RC1(目前)来说,表达式混合是必须的。

        3
  •  1
  •   Gongdo    14 年前

    这个怎么样?

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