2013-05-16 2 views
0

У меня есть сетка и три столбца. Здесь идет код:Как заполнить текстовый блок периодами (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> 

Так что, если моя сетка имеет фиксированный размер, то это решение в порядке, но если она меняется динамически, то я не знаю, как динамически изменять периоды.
Я прочитал this пост, но решение дается Боб Бао не работает в Silverlight (я имею в виду объект DrawingBrush не поддерживается).
Я также прочитал this пост, где Тамир Khason предлагает клонировать объект WPF использовать его в Silverlight. Я не хочу использовать такие сложные решения.
У кого-нибудь есть лучшее решение?

ответ

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> 

Edit: Играя с LinearGradientBrush свойствами и высота прямоугольника (или другой элемент пользовательского интерфейса) ... Изменение 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> 
+0

Хорошее решение, но разные пространства заполняются по-разному. Вы поймете, что я скажу, если вы посмотрите [здесь] (http://lms.bigbrain.am/jiwvT) –

+0

, и вот как он выглядит с кодом, который я предоставил во-первых: [нажмите здесь] (http: // lms .bigbrain.am/RosdX) –

+0

Мне пришлось исправлять позицию с запасом, но это решение, спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^