我有一个网格和三列。这是代码:
<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>
因此,如果我的网格具有固定大小,那么此解决方案就可以了,但如果它动态变化,那么我不知道如何动态更改周期。
我已阅读this帖子,但 Bob Bao 提供的解决方案在Silverlight
中无效(我的意思是DrawingBrush
个对象不支持)。
我还阅读了this帖子,其中 Tamir Khason 提供克隆WPF
对象以在Silverlight
中使用它。我不想使用这种复杂的解决方案
有没有人有更好的解决方案?
答案 0 :(得分: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元素)...更改StartPoint
和Height
以获取其他点大小...
<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>