我在win2d畫布上添加了兩個不同的圖像,在不同的點和不同的大小,並運行應用程序顯示兩個圖像完美點設置爲顯示。然後我如何選擇圖像並在畫布上移動。如何選擇特定圖像,然後選擇圖像在win2d畫布上移動?
1
A
回答
3
Win2D是立即模式的圖形庫(維基百科)
立即模式渲染爲圖形庫應用程序編程接口,其中客戶端調用直接引起圖形渲染對象到所述顯示器的樣式。它並不排除使用雙緩衝。與保留模式相比,要呈現的對象列表不會被API庫保存。相反,應用程序必須重新發布每次需要新幀時描述整個場景所需的所有繪圖命令,無論實際更改如何。該方法爲應用程序提供了最大程度的控制和靈活性。
所以,你要保留你想要修改的對象的引用,因爲一旦它被繪製,它就會丟失。
因此,將您的CanvasBitmap
定義爲全局資源或創建某種類型的ResourceLocator。然後創建一個你自己的類,它存儲x,y,寬度,高度就像一個自定義對象;
public class GenericItem
{
public CanvasBitmap b;
public int x;
public int y;
public int w;
public int h;
}
從Win2D
變形例:
CanvasBitmap cat, mouse;
GenericItem gi_cat;
加載位圖中:
async Task CreateResourcesAsync(CanvasControl sender)
{
cat = await CanvasBitmap.LoadAsync(sender, "ShawnsCat.jpg");
mouse = await CanvasBitmap.LoadAsync(sender, "Mouse.png");
// create your GenericItem here
gi_cat = new GenericItem();
// fill in your x,y,width,height,bitmap
}
現在繪製
void myWidget_Draw(CanvasControl sender, CanvasDrawEventArgs args)
{
args.DrawingSession.DrawImage(gi_cat.b, gi_cat.x, gi_cat.y);
}
現在您可以修改gi_cat.x gi_cat.y和您添加的任何屬性。
gi_cat.x = 500;
gi_cat.y = 250;
並且您可以在畫布控件上導致重繪調用Invalidate方法。
name_of_your_canvas.Invalidate();
這將導致畫布控件重新繪製新的位置。
基本上,你必須自己處理所有事情。如果您正在尋找一種類似DOM的方法,那麼只需使用XAML中的常規控件Canvas
即可。
我有一個很深入Win2D演練在這裏:
相關問題
- 1. 選擇圖像,然後移動它們
- 2. 圖像選擇畫布
- 3. 無法在畫布上選擇圖像
- 4. 如何在畫布上設置圖像..?然後畫在圖像
- 5. 如何在畫布上選擇圖紙?
- 6. 畫布中選擇圖像與jQuery
- 7. 如何選擇圖像選擇器的多個圖像,然後返回圖像視圖? (2-5)
- 8. 在UIScrollview中選擇特定圖像
- 9. JavaScript-如何使用'mousedown'來'選擇'畫布上的圖像
- 10. 在iPad上選擇圖像
- 11. 如何移動畫布上的圖像?
- 12. 選擇新圖像後刪除圖像
- 13. 創建動畫以選擇圖像
- 14. execCommand後選擇圖像
- 15. Fabric.js圖像在選擇之前在畫布上不可見
- 16. jQuery選擇圖像上方的圖像
- 17. matplotlib選擇圖像區域的圖像,然後放大
- 18. 從圖像中選擇特定區域
- 19. 圖像的圖像選擇選項
- 20. 如何在畫布內移動圖像
- 21. 如何選擇Blogger上顯示的特定圖像Homapage
- 22. 用KeyPressed在畫布上移動圖像
- 23. 在javascript畫布上移動圖像
- 24. 安卓網格視圖滾動選擇圖像自動選擇圖像
- 25. 如何刪除圖像上的選擇
- 26. 如何預覽從畫布中選擇的正確圖像?
- 27. 如何通過使用swift選擇圖像選擇器來鏡像圖像?
- 28. 選擇框圖像
- 29. 選擇和圖像
- 30. Jquery選擇圖像