2016-12-02 9 views
0

Я пытаюсь увеличить масштаб InkCanvas.Простой способ увеличить масштаб InkCanvas в UWP?

Моя первая идея была:

<ScrollViewer ZoomMode="True"> 
    <InkCanvas> 
    </InkCanvas> 
</ScrollViewer> 

Но этот способ не работает.

Я не могу написать что-либо на моем холсте после того, как поместил его в ScrollViewer.

Возможно, кто-то может помочь.

Благодаря

Agredo

ответ

0

Просто построенный из немного доказательства концепции, и я получил это работает!

Вот XAML:

<ScrollViewer ZoomMode="Enabled" MinZoomFactor="1" MaxZoomFactor="7"        HorizontalScrollBarVisibility="Visible" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" 
       VerticalScrollBarVisibility="Visible" Height="275" Width="525" BorderBrush="LightBlue" BorderThickness="2"> 
    <Border BorderBrush="Black" BorderThickness="2" Height="250" Width="500"> 
     <InkCanvas x:Name="InkCanvas" Loaded="InkCanvas_Loaded"/> 
    </Border> 
</ScrollViewer> 

Я завернул Ink Canvas и ScrollViewer с границами, так что вы можете увидеть, где они находятся по отношению к другу другу. Вот метод InkCanvas_Loaded, а также:

private void InkCanvas_Loaded(object sender, RoutedEventArgs e) 
    { 
     InkCanvas canvas = sender as InkCanvas; 

     //Set inputs 
     canvas.InkPresenter.InputDeviceTypes = 
      Windows.UI.Core.CoreInputDeviceTypes.Mouse | 
      Windows.UI.Core.CoreInputDeviceTypes.Pen | 
      Windows.UI.Core.CoreInputDeviceTypes.Touch; 

     // Set initial ink stroke attributes. 
     InkDrawingAttributes drawingAttributes = new InkDrawingAttributes(); 
     drawingAttributes.Size = new Size(10, 10); 
     drawingAttributes.Color = Windows.UI.Colors.Black; 
     drawingAttributes.IgnorePressure = false; 
     drawingAttributes.FitToCurve = true; 
     canvas.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes); 
    } 

Вы можете прокручивать, удерживая контроль и перемещение средней кнопки мыши вверх или вниз. Если вы находитесь на сенсорном экране, вы можете ущипнуть/развернуть, чтобы увеличить/уменьшить масштаб!

0

Возможно, вам необходимо изменить ZoomMode с «True» на «Enabled», а также добавить высоту к холсту; некоторые элементы управления не растягивают своих детей по умолчанию.

Это работает для меня:

 <ScrollViewer x:Name="scrollViewer" ZoomMode="Enabled" MinZoomFactor="1" VerticalScrollMode="Enabled" VerticalScrollBarVisibility="Auto" HorizontalScrollMode="Enabled" HorizontalScrollBarVisibility="Auto"> 
     <Grid x:Name="outputGrid" Background="{ThemeResource SystemControlBackgroundChromeWhiteBrush}" Height="Auto"> 
      <InkCanvas x:Name="inkCanvas"/> 
     </Grid> 
    </ScrollViewer>