2017-09-25 14 views
0

我正在編寫一個應用程序C# UWP。現在我有一個覆蓋整個屏幕的InkCanvas和一個代表允許用戶開始繪製的區域的Rectangle。一旦用戶開始繪製(通過在矩形區域內按壓),用戶被允許在整個屏幕上的任何地方繪製,直到鼠標/筆被釋放。這是我現在所擁有的代碼:如何控制InkCanvas只在鼠標位於特定位置時纔開始繪製

<Grid Name="Root" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <InkCanvas Name="MyInkCanvas"/> 
    <Rectangle Fill="Green" Width="100" Height="100"/> 
</Grid> 

我的問題是,如果我把InkCanvas頂部(最高zIndex的),我可以畫線,但沒有其他事件經過的矩形。另外,我無法在繪畫時找到獲取積分的方法。這意味着我無法檢查起點是否在矩形區域內。如果我將矩形置於頂部,則在按矩形後,無法讓InkCanvas註冊按下的動作,這意味着不會繪製線條。那麼,是否可以在特定區域內開始繪畫?

+0

這非常有幫助。用這個,我可以找到鼠標的位置,然後在繪圖之前檢查鼠標是否在指定的區域。你想爲此創建一個答案,以便我可以接受它嗎? – FewWords

回答

0

根據您的要求,您可以參考SimpleInk(場景8)官方代碼示例。

通過SimpleInk項目場景8中的以下方法,您可以找到鼠標位置,然後在繪製之前檢查鼠標是否位於指定區域。

private bool FollowCircleTest(CoreWetStrokeUpdateEventArgs args) 
{ 
    var position = args.NewInkPoints[0].Position; 
    var distanceFromCenter = DistanceFromCenter(position); 

    return InCircleEdgeZone(distanceFromCenter); 
} 
相關問題