如何在 UWP 中更改 InkCanvas Strokes 的大小?
How to change the size of InkCanvas Strokes in UWP?
我的 UWP 应用程序中的 InkCanvas 有一个未解决的问题。
我将 InKCanvas 中的笔画保存在 SQLite 数据库中,并带有测量值 a*b
。现在我想在另一个 InkCanvas 上显示此 Strokes,其测量值与具有 a*b
(例如 a/2 * b/2
)的 InkCanvas 不同。
如何更改笔触的大小?我尝试使用:
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.
}
也许有人可以提供帮助。
矩阵转换对我有用。
我使用过Matrix3x2.CreateScale
工厂方法如下:
var strokes = InkDisplay.InkPresenter.StrokeContainer.GetStrokes();
foreach ( var stroke in strokes )
{
stroke.PointTransform =
Matrix3x2.CreateScale(
xScale,
yScale
);
}
请注意,xScale
和 yScale
值表示 相对 比例,这意味着当您使用 canvas 大小的墨水时X*Y
墨水 canvas 大小 (X/2)*(Y*2)
,值将是 xScale = 0.5
和 yScale = 2
。
你可以看到我创建的示例on my GitHub。
我的 UWP 应用程序中的 InkCanvas 有一个未解决的问题。
我将 InKCanvas 中的笔画保存在 SQLite 数据库中,并带有测量值 a*b
。现在我想在另一个 InkCanvas 上显示此 Strokes,其测量值与具有 a*b
(例如 a/2 * b/2
)的 InkCanvas 不同。
如何更改笔触的大小?我尝试使用:
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.
}
也许有人可以提供帮助。
矩阵转换对我有用。
我使用过Matrix3x2.CreateScale
工厂方法如下:
var strokes = InkDisplay.InkPresenter.StrokeContainer.GetStrokes();
foreach ( var stroke in strokes )
{
stroke.PointTransform =
Matrix3x2.CreateScale(
xScale,
yScale
);
}
请注意,xScale
和 yScale
值表示 相对 比例,这意味着当您使用 canvas 大小的墨水时X*Y
墨水 canvas 大小 (X/2)*(Y*2)
,值将是 xScale = 0.5
和 yScale = 2
。
你可以看到我创建的示例on my GitHub。