Obecnie mam obraz na płótnie, który mogę swobodnie poruszać się w mojej aplikacji, na której mam 6 warstw renderowanych DrawingVisuals, ale wygląda na to, że jest dość wolny. Używam RenderTargetBitmap do renderowania wizualizacji. Czy istnieje szybszy sposób wyświetlania wizualizacji na obrazie lub na dowolnym innym elemencie szkieletowym, który mogę swobodnie poruszać się po płótnie?Szybkie renderowanie rysunków graficznych w WPF
XAML:
<Canvas>
<Image Height="505" HorizontalAlignment="Left" Margin="0,0,0,0" Name="_MapImage" Stretch="Fill" VerticalAlignment="Top" Width="700" MouseLeftButtonDown="_MapImage_MouseDown" MouseWheel="_MapImage_MouseWheel" MouseLeftButtonUp="_MapImage_MouseUp" MouseMove="_MapImage_MouseMove" />
</Canvas>
Kod:
_renderRoutesBitmap = new RenderTargetBitmap((int)(_MapImage.Width), (int)(_MapImage.Height), 96, 96, PixelFormats.Default);
for (int i = 6; i < 8; ++i)
{
if((layerCode/(int)Math.Pow(10,i) % 2) == 1)
_renderRoutesBitmap.Render(_layers[i]); //takes too much time
}
_RouteImage.Source = _renderRoutesBitmap;
Czy mógłbyś opisać szczegółowo, co masz w _layers? –
Tablica _layers zawiera rysunki, które są właściwie różnymi rodzajami dróg rysowanej mapy, renderowanymi na jednym obrazie. –