2009-07-28 1 views
0

다음은 현재 WPF에서 밑줄이 표시된 머리글을 작성해야하는 코드입니다. 테이블을 사용하는 더 쉬운 방법이 있어야합니다.밑줄/테두리를 컨테이너 전체에 걸쳐 늘이는 방법

<Grid> 
<FlowDocumentScrollViewer> 
    <FlowDocument> 
    <Table> 
    <Table.Columns> 
     <TableColumn Width="Auto"/> 
    </Table.Columns> 
    <TableRowGroup> 
     <TableRow> 
     <TableCell> 
      <Paragraph Style="{StaticResource Text_LoginHeaderStyle}"> 
      <Bold>Some header text</Bold> 
      </Paragraph> 
     </TableCell > 
     </TableRow> 
     <TableRow> 
     <TableCell> 
      <BlockUIContainer> 
      <Line Style="{StaticResource Control_TitleLineSeparator}" /> 
      </BlockUIContainer> 
     </TableCell> 
     </TableRow> 
    </TableRowGroup> 
    </Table> 
    </FlowDocument> 
</FlowDocumentScrollViewer> 
</Grid> 

라인에 대한 정의는 아이디어는 텍스트를 생성하고 밑줄이 경우, 그리드 레이아웃을 둘러싸는 용기의 전체 폭을 뻗어하도록 강조하는 것입니다

<Style x:Key="Control_TitleLineSeparator" TargetType="Line" BasedOn="{StaticResource BasicHorizontalLine}"> 
    <Setter Property="Stroke" Value="Gray"/> 
    <Setter Property="StrokeThickness" Value="1"/> 
    <Setter Property="Margin" Value="0,0,0,3"/> 
</Style> 

입니다 .

는 업데이트

: 나는 테이블을 사용할 필요가 없습니다

, 그게 내가 그 일을하고 텍스트와 라인 사이에 큰 공간을 두지 않았다 찾을 수있는 유일한 방법이었다. 나는 이제 더 간단한 방법으로 보이는 것을 발견했다.

<BlockUIContainer> 
    <TextBlock Style="{StaticResource Text_LoginHeaderStyle}" Text="Skill Groups"/> 
</BlockUIContainer> 
<BlockUIContainer> 
    <Line Style="{StaticResource Control_TitleLineSeparator}" /> 
</BlockUIContainer> 

그러나 이것은 매우 복잡한 것처럼 보입니다. 위의 텍스트를 자체 포함되도록 수정했습니다.

+0

당신은 자기가 포함되어있어 예를 게시 할 수 있습니까? 위의 코드에는 몇 가지 리소스가 누락되었습니다. 또한 테이블을 사용해야합니까? –

답변

1

에만 테두리 하단에 정의한 테두리에 원하는 텍스트 포장을 시도 할 수 :

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> 

    <Border BorderThickness="0,0,0,1" 
      BorderBrush="Black" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Top" 
      SnapsToDevicePixels="True"> 
    <TextBlock Text="Some text here" /> 
    </Border> 

</Page> 
+0

어떤 이유로 든, Border 엘리먼트는 훨씬 더 두껍고 앤티 앨리어싱 된 라인을 생성 한 다음 Line은 만듭니다. 선은 멋진 선명한 단일 픽셀 선을 만듭니다. –

+0

'SnapsToDevicePixels = "True"'속성을 포함하도록 코드를 업데이트했습니다. 이렇게하면 선이 1 픽셀 넓어지고 화면이 선명 해집니다. –

+0

SnapsToDevicePixels을 추가하는 것이 효과적입니다. –