只是想知道什么更轻,我将有一个控制,我的SegmentControl吸引280*4,这是一个四分之一的圆,我只是想知道什么是最少的内存来绘制所述段的方式.
GeometryDrawing:
<Image>
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing Brush="LightBlue"
Geometry="M24.612317,0.14044853 C24.612317,0.14044853 33.499971,-0.60608719 41,7.0179795 48.37642,14.516393 47.877537,23.404541 47.877537,23.404541 L24.60978,23.401991 z" />
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
Run Code Online (Sandbox Code Playgroud)
或路径:
<Path Fill="LightBlue"
Stretch="Fill"
Stroke="#FF0DA17D"
Data="M24.612317,0.14044853 C24.612317,0.14044853 33.499971,-0.60608719 41,7.0179795 48.37642,14.516393 47.877537,23.404541 47.877537,23.404541 L24.60978,23.401991 z" />
Run Code Online (Sandbox Code Playgroud)
或者,如果你知道更好的方式,那将非常感激.
谢谢!
小智 0
如果你想要更好的性能,你可以研究“绘制视觉”。它更复杂,但性能也更高。
但是,您需要了解如何绘制每个所需的形状。
样本:
// Create a DrawingVisual that contains a rectangle.
private DrawingVisual CreateDrawingVisualRectangle()
{
DrawingVisual drawingVisual = new DrawingVisual();
// Retrieve the DrawingContext in order to create new drawing content.
DrawingContext drawingContext = drawingVisual.RenderOpen();
// Create a rectangle and draw it in the DrawingContext.
Rect rect = new Rect(new System.Windows.Point(160, 100), new System.Windows.Size(320, 80));
drawingContext.DrawRectangle(System.Windows.Media.Brushes.LightBlue, (System.Windows.Media.Pen)null, rect);
// Persist the drawing content.
drawingContext.Close();
return drawingVisual;
}
Run Code Online (Sandbox Code Playgroud)