저는 확대/축소 및 이동이 가능한 스크롤바에 Canvas가 포함되어 있습니다. 그러나 사용자 입력 요소 (텍스트 상자, 이미지 등)를 핀치 기능으로 크기를 조정할 수 있도록하려고합니다.UWP Canvas에서 ScrollViewer를 사용하여 UI 요소 크기 조정
<Grid>
<RelativePanel>
<Button ... />
<Button ... />
<Button />
<ScrollViewer
VerticalScrollMode="Auto"
HorizontalScrollMode="Auto"
HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Visible"
ZoomMode="Enabled"
MinZoomFactor="1"
MaxZoomFactor="5"
HorizontalAlignment="Left"
VerticalAlignment="Top"
RelativePanel.Below="AddTextButton">
<Canvas Name="parentCanvas" Height="10000" Width="10000" >
<InkCanvas Name="inkCanvas" Height="10000" Width="10000"
Visibility="Visible" />
</Canvas>
</ScrollViewer>
</RelativePanel>
</Grid>
나는 또한 조작 이벤트를 텍스트 상자를 추가하고 처리하기 위해이 C# 코드를
은 (드래그/크기 조정) :
public void AddTextButton_Click(object sender, RoutedEventArgs e)
{
TextBox MyTextBox = new TextBox();
MyTextBox.Background = new SolidColorBrush(Colors.White);
MyTextBox.PlaceholderText = "Text";
MyTextBox.Width = 250;
MyTextBox.Height = 100;
ManipulationMode = ManipulationModes.All;
MyTextBox.RenderTransform = textBoxTransforms;
AddHandler(ManipulationDeltaEvent, new ManipulationDeltaEventHandler(TextBox_ManipulationDelta), true);
parentCanvas.Children.Add(MyTextBox);
}
void TextBox_ManipulationDelta(object sender,
ManipulationDeltaRoutedEventArgs e)
{
// Move the TextBox.
dragTextBox.X += e.Delta.Translation.X;
dragTextBox.Y += e.Delta.Translation.Y;
resizeTextBox.ScaleX *= e.Delta.Scale;
resizeTextBox.ScaleY *= e.Delta.Scale;
}
이 C# 코드 다음은 인터페이스의 기초에 대한 내 XAML 코드는 캔버스가 스크롤 뷰어에 포함되어 있지 않을 때 작동합니다. scrollviewer에서 크기 조정 (터치/집기 기능 포함)하는 방법에 대한 제안 사항이 있습니까?
감사합니다.