0

我有一个网格和三列。代码如下:

<Grid x:Name="StaticGrid" 
        HorizontalAlignment="Stretch" 
        VerticalAlignment="Stretch" 
        Width="450" 
        Margin="3">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <TextBlock Text="{TemplateBinding Description}" 
                Grid.Column="0" 
                Height="30" 
                HorizontalAlignment="Left"/>
    <TextBlock Text="......................................................................................................" 
               Grid.Column="1"/>
    <TextBlock Text="{TemplateBinding ParamValue}" 
                Grid.Column="2" 
                Height="30" 
                HorizontalAlignment="Right"/>
</Grid>

因此,如果我的网格具有固定大小,那么这个解决方案就可以了,但如果它动态变化,那么我不知道如何动态更改周期。
我已经阅读了这篇文章,但是Bob Bao给出的解决方案不起作用Silverlight(我的意思DrawingBrush是不支持该对象)。
我还阅读了这篇文章,其中Tamir Khason提供克隆WPF对象以在Silverlight. 我不想使用如此复杂的解决方案。
有没有人有更好的解决方案?

4

1 回答 1

0

您可以使用路径并使用StrokeDashArray属性,如下所示:

<Grid Height="100" Width="100">
    <Path Data="M5,1 L1,1" 
          Height="1" 
          Stretch="UniformToFill" 
          Stroke="Black" 
          StrokeThickness="2" 
          VerticalAlignment="Top" 
          StrokeDashArray="1 1"/>
</Grid>

编辑:通过使用LinearGradientBrush属性和矩形(或其他 ui 元素)的高度...更改StartPointandHeight为另一个点大小...

<Grid Height="100" Width="100">
    <Rectangle Height="2">
        <Rectangle.Fill>
            <LinearGradientBrush
                  EndPoint="0,0"
                  StartPoint="3,0"
                  MappingMode="Absolute"
                  SpreadMethod="Repeat">
                <GradientStop Color="Black" Offset="0.5"/>
                <GradientStop Offset="0.5"/>
            </LinearGradientBrush>
        </Rectangle.Fill>
    </Rectangle>
</Grid>
于 2013-05-16T12:15:43.910 回答