2011-11-15 30 views
0

在我的FlowDocument中,我想包含一個填充了文本和圖形線條的表格。你會推薦哪種方法?我正考慮將裝飾者附加到桌子上,但迄今爲止我無法在整個桌子上添加裝飾者。如何在FlowDocument中使用圖線繪製表格?

下面是一些素描,我想添加到文檔:

enter image description here

我使用C#和.NET 4.0

+0

請選中該鏈接http://msdn.microsoft.com/en-us/library/aa970909.aspx而這一次也HTTP: //msdn.microsoft.com/en-us/library/ms747133.aspx#building_a_table_with_code –

+0

嗨,我一直在閱讀這些,我可以創建表格,但我不知道如何繪製它(請參見草圖I已添加到帖子)。我想在桌子上繪製彩色線條。 – MiroJanosik

回答

1

的問題的解決,是電網。 Grid與Table非常相似,並且包含Canvas沒有問題。在這裏,您可以看到示例圖像以及將Canvas與網格一起放入FlowDocument中的示例。您可以通過代碼創建相同的流文件也:

Table with multiple rows, columns and drawing in the cells.

<FlowDocument PageWidth="600" MinPageWidth="600" PagePadding="0,0,0,0"> 
    <Section> 
    <Paragraph> 
     <Grid ShowGridLines="False" Background="#FFFFFFFF" Margin="0,5,0,0"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="140"/> 
      <ColumnDefinition Width="460"/> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="20"/> 
      <RowDefinition Height="20"/> 
     </Grid.RowDefinitions> 
     <Canvas Background="#FFFFFFFF" Name="Canvas0" Width="460" Height="40" Grid.Column="1" Grid.Row="1"> 
      <Rectangle Fill="#FFD3D3D3" Width="140" Height="40" Canvas.Left="160" Canvas.Top="0"/> 
      <Rectangle Fill="#FFA9A9A9" Width="91" Height="40" Canvas.Left="188" Canvas.Top="0"/> 
      <Ellipse Fill="#FF3E00C1" Width="7" Height="7" Canvas.Left="282.978417266187" Canvas.Top="6.5"/> 
      <Ellipse Fill="#FF1D00E2" Width="7" Height="7" Canvas.Left="199.508" Canvas.Top="26.5"/> 
      <Line X1="286.478417266187" Y1="10" X2="203.008" Y2="30" StrokeThickness="2"> 
      <Line.Stroke> 
       <LinearGradientBrush StartPoint="0,0" EndPoint="1,0"> 
       <LinearGradientBrush.GradientStops> 
        <GradientStop Color="#FF1D00E2" Offset="0"/> 
        <GradientStop Color="#FF3E00C1" Offset="1"/> 
       </LinearGradientBrush.GradientStops> 
       </LinearGradientBrush> 
      </Line.Stroke> 
      </Line> 
     </Canvas> 
     </Grid> 
    </Paragraph> 
    </Section> 
</FlowDocument>