是否可以在C#中使用List <graphicspath>?

时间:2017-12-18 09:29:55

标签: c# list generics drawing2d graphicspath

我正在尝试使用GraphicsPath列表而不是数组,因为我不知道用户将创建的路径数。

List<GraphicsPath> PathDB = new List<GraphicsPath>();

在此之后,我按如下方式填写列表:

using(GraphicsPath myPath = new GraphicsPath())
{
   myPath.AddPolygon(myPoints);
   PathDB.Add(myPath);
}

但是当我尝试使用列表中的GraphicsPath时,虽然Count属性是正确的,但由于参数异常,我无法使用下面的对象。

num = PathDB.Count;
for(int k=0; k < num; k++)
   {
      using(GraphicsPath myCurrentPath = new GraphicsPath())
      {
         myCurrentPath = PathDB[k];
         myCurrentPath.AddLine(0,0,400,400); //at this stage exception is thrown 
         myGraphics.DrawPath(myPen, myCurrentPath)
      }
   }

与GraphicsPath有关的是Disposabe吗?或者做smt错了?

1 个答案:

答案 0 :(得分:3)

using(GraphicsPath myPath = new GraphicsPath())
{
   myPath.AddPolygon(myPoints);
   PathDB.Add(myPath);
} // this disposes myPath

这是一个本地图形路径。如果已完成,则using阻止Dispose阻止范围using。因此,您需要删除 $catlist = get_terms( 'category' ); // get category list $string ="<ul>"; foreach ( $catlist as $key => $item ) { $thumbnail_id = get_woocommerce_term_meta( $item->term_id, 'thumbnail_id', true ); $image = wp_get_attachment_url( $thumbnail_id ); if ( $image ) { $image_dis='<img src="' . $image . '" alt="' . $cat->name . '" />'; } $string .= '<li>'. $item->name . '<br />'; $string .= $image_dis . '<br />'; $string .= '<em>'. $item->description . '</em> </li>'; } $string .="</ul>"; echo $string; 阻止,而是在您不再需要路径时将其丢弃。