2009-08-26 55 views
1

當涉及到以下三個邊界對象之間的性能時,是否有區別?DrawingBrush性能

<Border Grid.Column="0" Grid.ColumnSpan="2" Opacity="1"> 
    <Border.Background> 
    <DrawingBrush> 
     <DrawingBrush.Drawing> 
     <DrawingGroup> 
      <GeometryDrawing Brush="Red"> 
      <GeometryDrawing.Geometry> 
       <GeometryGroup> 
       <RectangleGeometry Rect="0,0 100,1000" /> 
       <LineGeometry StartPoint="0,0" EndPoint="100,1000"/> 
       <LineGeometry StartPoint="100,0" EndPoint="0,1000"/> 
       </GeometryGroup> 
      </GeometryDrawing.Geometry> 
      <GeometryDrawing.Pen> 
       <Pen Thickness="20" Brush="Black"/> 
      </GeometryDrawing.Pen> 
      </GeometryDrawing> 
     </DrawingGroup> 
     </DrawingBrush.Drawing> 
    </DrawingBrush> 
    </Border.Background> 
</Border> 

<Border Grid.Column="0" Grid.ColumnSpan="2" Opacity="1"> 
    <Border.Background> 
    <DrawingBrush> 
     <DrawingBrush.Drawing> 
     <DrawingGroup> 
      <GeometryDrawing Brush="Red"> 
      <GeometryDrawing.Geometry> 
       <RectangleGeometry Rect="0,0 100,1000" /> 
      </GeometryDrawing.Geometry> 
      <GeometryDrawing.Pen> 
       <Pen Thickness="20" Brush="Black"/> 
      </GeometryDrawing.Pen> 
      </GeometryDrawing> 
      <GeometryDrawing> 
      <GeometryDrawing.Geometry> 
       <LineGeometry StartPoint="0,0" EndPoint="100,1000"/> 
      </GeometryDrawing.Geometry> 
      <GeometryDrawing.Pen> 
       <Pen Thickness="20" Brush="Black"/> 
      </GeometryDrawing.Pen> 
      </GeometryDrawing> 
      <GeometryDrawing> 
      <GeometryDrawing.Geometry> 
       <LineGeometry StartPoint="100,0" EndPoint="0,1000"/> 
      </GeometryDrawing.Geometry> 
      <GeometryDrawing.Pen> 
       <Pen Thickness="20" Brush="Black"/> 
      </GeometryDrawing.Pen> 
      </GeometryDrawing> 
     </DrawingGroup> 
     </DrawingBrush.Drawing> 
    </DrawingBrush> 
    </Border.Background> 
</Border> 

<Border Grid.Column="3" Grid.ColumnSpan="2" Opacity="1"> 
    <Image Stretch="Uniform"> 
    <Image.Source> 
     <DrawingImage> 
     <DrawingImage.Drawing> 
      <DrawingGroup> 
      <GeometryDrawing Brush="Red"> 
       <GeometryDrawing.Geometry> 
       <GeometryGroup> 
        <RectangleGeometry Rect="0,0 100,1000" /> 
        <LineGeometry StartPoint="0,0" EndPoint="100,1000"/> 
        <LineGeometry StartPoint="100,0" EndPoint="0,1000"/> 
       </GeometryGroup> 
       </GeometryDrawing.Geometry> 
       <GeometryDrawing.Pen> 
       <Pen Thickness="20" Brush="Black"/> 
       </GeometryDrawing.Pen> 
      </GeometryDrawing> 
      </DrawingGroup> 
     </DrawingImage.Drawing> 
     </DrawingImage> 
    </Image.Source> 
    </Image> 
</Border> 

回答

4

這裏有一個問題,比如你這歸結爲標準答案「是比乙快?」 ...

嘗試兩種方法(或全部三種或多種方法)並測量執行時間。第一條原則的爭論不會回答這個問題,儘管它們可能會產生大量的熱空氣。

請不要以爲我用一個glib的答案來刷你,我在那裏工作,並行計算地球物理,表現非常非常重要。難得的經驗告訴我,確定A比B快的唯一方法是衡量兩者。如果測量差異不值得編碼,那麼差異就不重要了!