나는 ManipulationDelta 메서드를 통해 WPF에서 frameworkelements를 스케일링하기위한 작업 코드를 얻었습니다. 버튼, 도형 또는 텍스트 블록과 같은 모든 종류의 요소에서 작동하지만 텍스트 상자에서는 작동하지 않습니다.WPF의 텍스트 상자에 꼬집음
아무도 내가 고칠 수있는 방법을 알고 있습니까?
편집 : Here'sa 내 코드의 버전을 simpified : 요소가 genericly을 만들어
private void canvas_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
var element = e.Source as FrameworkElement;
var transformation = element.RenderTransform as MatrixTransform;
var matrix = transformation == null ? Matrix.Identity : transformation.Matrix;
matrix.ScaleAt(e.DeltaManipulation.Scale.X,
e.DeltaManipulation.Scale.Y,
1,
1);
}
matrix.RotateAt(e.DeltaManipulation.Rotation,
e.ManipulationOrigin.X,
e.ManipulationOrigin.Y);
matrix.Translate(e.DeltaManipulation.Translation.X,
e.DeltaManipulation.Translation.Y);
element.RenderTransform = new MatrixTransform(matrix);
e.Handled = true;
}
하지만,이 XAML와 같은 키우면 :
<Canvas Name="SomeCanvas" ManipulationDelta="canvas_ManipulationDelta">
<TextBox Canvas.Left="400" Canvas.Top="200" Height="50" Name="s3" IsManipulationEnabled = "true" Background="#57FF3ACB" />
</Canvas>
저자에게 도움을 요청할 수 있습니다. 또는 귀하의 질문을 수정하여 그것이 어떻게 고장 났는지, 어디에서 깨지는 지 등을 포함 할 수 있습니다. –
나는 내 코드를 질문에 게시했습니다. 그리고 나는 정말로 저자에게 물어볼 것입니다. :) – user3333128
Xaml에서 변형이 어떻게 더 잘 나타 났습니까? –