0

現在の (Silverlight) WP8.0 アプリをユニバーサル Windows アプリケーションに移植しています。このアプリケーションには、ユーザーがカスタム ダイヤル コントロールを使用できるようにするコントロールがあります。ダイヤルが停止すると、アプリはその特定のポイント (および下にある画像) からピクセルの色を取得する必要があります。

WP8.0 では、次のことを行っていました。

WriteableBitmap wb = new WriteableBitmap(ColorWheelImage, null);
Color c = wb.GetPixel(pointX, pointY);

ColorWheelImage は XAML にあります。

WinRT では、WriteableBitmap のみがサポートnew WriteableBitmap(int pixelWidth, int pixelWidth)され、Silverlight のように画像を設定することはありません。

どうすればこれを修正できますか..私はそれを理解できないようです:(!

ありがとう、ニールス

4

1 に答える 1

3

WinRT では、WriteableBitmapビジュアルを描画できません。代わりに、MS は新しいコントロールを追加しましたRenderTargetBitmap

RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap(); 
await renderTargetBitmap.RenderAsync(ColorWheelImage, width, height);
IBuffer pixelBuffer = await renderTargetBitmap.GetPixelsAsync();

しかし、 int 配列の代わりに をGetPixelsAsync()提供します。IBuffer序数を取得するには、WriteableBitmapExWriteableBitmapを使用できます。

var width = renderTargetBitmap.PixelWidth;
var height = renderTargetBitmap.PixelHeight;
var writeableBitmap = await new WriteableBitmap(1, 1).FromPixelBuffer(pixelBuffer, width, height);
于 2014-09-01T03:43:25.280 に答える