2010-04-30 18 views
6

Estoy usando un separador para dibujar una línea vertical dentro de un borde. Al principio, esto estaba bien porque la línea necesitaba estar centrada, pero ahora necesito ubicarla en una posición x personalizada desde el borde izquierdo. ¿Hay una manera de hacer eso?WPF Separador posición

<Border x:Name="border" ClipToBounds="True" Background="White" BorderBrush="Black" BorderThickness="2"> 
    <Separator BorderBrush="Black" BorderThickness="2"> 
     <Separator.LayoutTransform> 
      <RotateTransform Angle="90" /> 
     </Separator.LayoutTransform> 
    </Separator> 
</Border> 

Respuesta

4

No estoy seguro de la forma correcta, si dispone de ellos, pero si no se cambie el tamaño de la frontera, se puede usar un margen de esta manera:

<Border x:Name="border" ClipToBounds="True" Background="White" BorderBrush="Black" BorderThickness="2"> 
      <Separator BorderBrush="Black" BorderThickness="2" Height="2" Margin="0,0,100,0"> 
       <Separator.LayoutTransform> 
        <RotateTransform Angle="90" /> 
       </Separator.LayoutTransform> 
      </Separator> 
     </Border> 
2

El cambio más sencillo que se puede hacer es sólo para establecer el HorizontalAlignment y luego usar márgenes para compensar el separador (el valor predeterminado es 0,2,0,2):

<Border x:Name="border" ClipToBounds="True" Background="White" BorderBrush="Black" BorderThickness="2"> 
    <Separator BorderBrush="Black" BorderThickness="2" HorizontalAlignment="Left" Margin="20,2,0,2" > 
     <Separator.LayoutTransform> 
      <RotateTransform Angle="90" /> 
     </Separator.LayoutTransform> 
    </Separator> 
</Border> 

Hay un montón de otras maneras en que podría lograr el mismo efecto visual si tiene otros requerimientos.