Pergunta

Em Silverlight, como posso esticar a largura de uma linha para preencher a largura do Stackpanel em que é um elemento infantil? Prefira uma solução XAML, não um código-behind. Aqui está como posso fazer isso no WPF:

<Line X1="0" 
      X2="{Binding Path=ActualWidth, ElementName=HolePatternStackPanel}" 
      Stroke="Gray" 
      StrokeThickness="1" />

Mas isso não funciona no Silverlight.

Foi útil?

Solução

<Line X1="0" Y1="0" X2="0" Y2="1" Stretch="Fill" Stroke="#FF000000" />

Funciona no WPF e Silverlight.

Se os Xs são 0, é uma linha vertical. Se os Y são 0, é horizontal. Use x1 = 0 y1 = 0 x2 = 1 y2 = 1 para diagonal do canto superior esquerdo para o canto inferior direito ou reverte -o para o canto inferior esquerdo para o canto superior direito.

Funky Fresh.

Outras dicas

Isso foi respondido no Fórum Silverlight.net pelo Usuário Sladapter da seguinte maneira:

O Silverlight atual não suporta a ligação ao elemento.

Você tem que usar o objeto de linha? Se você deseja apenas desenhar uma linha, pode usar o retângulo (altura de 2 px), poderá definir o horizontalalignamento = "esticar" para que ele se estenda automaticamente.

Funcionou peferctly para minhas necessidades.

O ElementBinding existe no Silverlight 4. Mas ainda não existe uma ótima maneira de esticar um item para preencher seu contêiner pai. O que você realmente deseja é se encaixar no contêiner pai na árvore visual, que leva em consideração a aplicação de modelos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top