Код: Выделить всё
private void LoadBitmap(RenderTarget target)
{
if (LayerManager is null)
{
return;
}
if (bitmapRenderTarget is not null)
{
bitmapRenderTarget.Dispose();
bitmapRenderTarget = null;
}
bitmapRenderTarget = new BitmapRenderTarget(target, CompatibleRenderTargetOptions.None, new Size2F((float)Extents.Right, (float)Extents.Bottom));
bitmapRenderTarget.BeginDraw();
bitmapRenderTarget.Clear(new RawColor4(1.0f, 1.0f, 0f, 1.0f));
foreach (var layer in LayerManager.Layers.Values)
{
if (layer.IsVisible)
{
foreach (var o in layer.DrawingObjects)
{
if (o is DrawingLine drawingLine)
{
drawingLine.UpdateBrush(drawingLine.DxfLine, bitmapRenderTarget);
DxfHelpers.DrawLine(drawingLine, bitmapRenderTarget.Factory, bitmapRenderTarget, currentThickness);
}
}
}
}
bitmapRenderTarget.EndDraw();
bitmapRenderTargetNeedsUpdate = false;
bitmapLoaded = true;
}
Код: Выделить всё
private void RenderBitmap(RenderTarget target)
{
if (bitmapRenderTarget is not null)
{
if (bitmapRenderTargetNeedsUpdate)
{
LoadBitmap(target);
}
RawRectangleF rect = new(-200, -200, 500, 1000);
target.DrawBitmap(bitmapRenderTarget.Bitmap, 1.0f, BitmapInterpolationMode.Linear, rect);
}
}
У меня есть ссылка https://github.com/Almost935/Direct2DDX ... Control.cs на мое решение с помощью предварительно загруженный файл dxf, показывающий проблему.
Подробнее здесь: https://stackoverflow.com/questions/786 ... e-render-t
Мобильная версия