我想放大InkCanvas。在UWP中縮放InkCanvas的簡單方法?
我的第一個想法是:
<ScrollViewer ZoomMode="True">
<InkCanvas>
</InkCanvas>
</ScrollViewer>
但這種方式沒有奏效。
我不能在我的Canvas上寫任何東西后,我把它放進ScrollViewer。
也許有人可以幫忙。
感謝
Agredo
我想放大InkCanvas。在UWP中縮放InkCanvas的簡單方法?
我的第一個想法是:
<ScrollViewer ZoomMode="True">
<InkCanvas>
</InkCanvas>
</ScrollViewer>
但這種方式沒有奏效。
我不能在我的Canvas上寫任何東西后,我把它放進ScrollViewer。
也許有人可以幫忙。
感謝
Agredo
剛建了概念的證明一點,我得到它的工作!
這裏是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>
我包的墨跡畫布和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);
}
您可以通過按住Ctrl鍵並向上或向下移動鼠標中鍵進行滾動。如果你在觸摸屏上,你可以捏/展開放大/縮小!
您可能需要將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>