2015-08-24 5 views
1

Завис: Win2DVB.Net сделать изображение в фоновом режиме, используя Win2d

Я пытаюсь создать Livetile изображение с фоновой задачи. Однако сгенерированный файл PNG выглядит только прозрачно, ни одна точка не окрашена вообще.

Итак, я упростил важный код, как показано ниже, чтобы проверить, но результат не был изменен.

Я импортировал Microsoft.Canvas.Graphics(+Effects,+Text),

Dim device As CanvasDevice = New CanvasDevice() 
       Dim width = 150, height = 150 

       Using renderTarget = New CanvasRenderTarget(device, width, height, 96) 
        Dim ds = renderTarget.CreateDrawingSession() 
        'ds = DrawTile(ds, w, h) 

        Dim xf As CanvasTextFormat = New CanvasTextFormat() 
        xf.HorizontalAlignment = CanvasHorizontalAlignment.Left 
        xf.VerticalAlignment = CanvasVerticalAlignment.Top 
        xf.FontSize = 12 

        renderTarget.CreateDrawingSession.Clear(Colors.Red) 
        ds.Clear(Colors.Blue) 
        ds.DrawText("hi~", 1, 1, Colors.Black, xf) 
        renderTarget.CreateDrawingSession.DrawText("hi~", 1, 1, Colors.Black, xf) 


        Await renderTarget.SaveAsync(Path.Combine(ApplicationData.Current.LocalFolder.Path, "_tile_150x150.png")) 

       End Using 

Файл создается, но он наполнен ни красным или синим. Никакого текста. Он прозрачен только с холстом размером 150x150 пикселей.

Есть проблемы с кодом? или по любой другой причине?

Большое спасибо!

ответ

2

CanvasDrawingSession («ds» в вашем примере) должен быть закрыт/удален до вызова SaveAsync.

Вы можете использовать «Использование ds = renderTarget.CreateDrawingSession()», чтобы сделать это для вас - поместите вызов SaveAsync после «End Using».

Оттуда вы должны использовать один и тот же «ds», а не многократно называть «CreateDrawingSession».