2016-09-05 4 views
0

내 UWP 응용 프로그램에서 내 InkCanvas와 함께 해결되지 않은 문제가 있습니다.UWP에서 InkCanvas Strokes의 크기를 변경하는 방법은 무엇입니까?

나는 값이 a*b 인 InKCanvas에서 SQLite 데이터베이스에 스트로크를 저장했습니다. 이제 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

위대한, 그것이 도움이 행복 :-). 제 대답을 표시하여 질문이 해결되도록하십시오 :-). –