如何用句号填充文本块(Silverlight 5)



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

<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中使用它。我不想用这么复杂的解。
有人有更好的解决方案吗?

你可以像这样使用一个路径和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元素)的高度…更改StartPointHeight为另一个点大小…

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

相关内容

  • 没有找到相关文章

最新更新