日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java canvas画图,UWP Canvas绘图越界

發布時間:2023/12/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java canvas画图,UWP Canvas绘图越界 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我有一個畫布(不是InkCanvas!),我可以在上面繪制Polylines . 這工作得很好,但是如下面的GIF所示,繪制出界限存在一個巨大的問題 .

我的畫布在ScrollViewer中,ScrollViewer在GridView中 .

我試圖捕獲指針離開畫布與以下事件處理程序:

canvas.PointerExited += Canvas_PointerExited;

canvas.PointerCaptureLost += Canvas_PointerCaptureLost;

但似乎這些事件被解雇得太慢了 .

我嘗試使用畫布的Clip屬性,但行為沒有變化 . 并且UWP畫布沒有“ClipToBound”屬性 .

我的整個視圖是在Code-Behind中生成的,因為我必須在一個視圖上生成多個畫布 .

有沒有辦法阻止這種行為?

EDIT1:

根據要求:更深入了解我的代碼 .

XAML頁面如下所示:

它都在一個頁面內 .

我的代碼背后看起來像這樣:

我的建設者:

public ImprovedCanvasManager(Grid boundingGrid, Grid overviewGrid, string filepath, double height)

{

drawCanvas = new Canvas();

overviewGrid.Loaded += OverviewGrid_Loaded;

overviewGrid.SizeChanged += OverviewGrid_SizeChanged;

RowDefinition rd = new RowDefinition();

rd.Height = new GridLength(height);

overviewGrid.RowDefinitions.Add(rd);

InitializeScrollViewer();

Grid.SetRow(scroll, overviewGrid.RowDefinitions.Count);

Grid.SetColumn(scroll, 0);

scroll.Content = drawCanvas;

overviewGrid.Children.Add(scroll);

LoadImage(filepath);

}

public ImprovedCanvasManager(Grid boundingGrid, Grid overviewGrid, Grid inkToolGrid, string filepath, double height = 1000) : this(boundingGrid, overviewGrid, filepath, height)

{

AddDrawingToolsToCanvas(inkToolGrid, overviewGrid);

EnableDrawingOnCanvas(drawCanvas);

}

我只有兩個構造器,使我能夠簡單地實例化具有繪制和無繪制能力的畫布 .

這是我初始化我的ScrollViewer的方式:

private void InitializeScrollViewer()

{

scroll = new ScrollViewer();

scroll.VerticalAlignment = VerticalAlignment.Top;

scroll.VerticalScrollMode = ScrollMode.Auto;

scroll.HorizontalScrollMode = ScrollMode.Auto;

scroll.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;

scroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;

scroll.ZoomMode = ZoomMode.Enabled;

scroll.ManipulationMode = ManipulationModes.All;

scroll.MinZoomFactor = 1;

scroll.MaxZoomFactor = 3;

}

這些是影響任何視圖構建的唯一代碼行 .

Edit 2:

我的畫布不會填充左側的周圍網格,而是填充底部 .

總結

以上是生活随笔為你收集整理的java canvas画图,UWP Canvas绘图越界的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。