2016-09-05 58 views
0

我的UWP應用程序中有一個未解決的InkCanvas問題。如何更改UWP中InkCanvas筆劃的大小?

我從InKCanvas中將筆畫保存在SQLite數據庫中,測量結果爲a*b。現在我想在另一個InkCanvas上顯示此筆畫,其測量方式與InkCanvas中的a*b(例如a/2 * b/2)不同。

如何更改我的筆畫大小?我試着用:

var allStrokes = myInkCanvas.InkPresenter.StrokeContainer.GetStrokes(); 
foreach(var item in allStrokes) 
{ 
    item.PointTransform() = ...// I tried to transform my Strokey with a 3x2 Matrix 
           // But it didn't work. 
} 

也許有人可以幫忙。

回答

1

與矩陣的轉換爲我工作。

我已經使用了Matrix3x2.CreateScale工廠方法如下:

var strokes = InkDisplay.InkPresenter.StrokeContainer.GetStrokes(); 
foreach (var stroke in strokes) 
{ 
    stroke.PointTransform = 
     Matrix3x2.CreateScale( 
      xScale, 
      yScale 
     ); 
} 

筆記,該xScaleyScale值代表相對刻度,這意味着,當從尺寸X*Y的墨水畫布墨水畫布去大小爲(X/2)*(Y*2),值將是xScale = 0.5yScale = 2

您可以看到我創建的樣品on my GitHub

+0

謝謝你。我的恐懼是對矩陣的錯誤使用。我手動創建了它,但出錯了。現在,所有的代碼都可以完美地工作特別是使用方法Matrix3x2.CreateScale(x,y)。 – Agredo

+0

太棒了,很高興它幫助:-)。請標記我的答案,以便問題得到解決:-)。 –