Сегодня я видел доску Microsoft, и мне нравится базовый контроль inkCanvas (это мое предположение). и я решил создать элемент управления в приложении UWP, используя inkCanvas, который ведет себя так же, как приложение Microsoft Whiteboard UWP. Доска Microsoft UWP. Моя цель — ниже
- Он должен добавить ширину и прокрутку с правой стороны, если inkCanvas имеет какую-либо форму, рисуемую справа. Я попробовал ниже код, который действительно работает, но не прокручивается так, как работает доска Microsoft.
var right = inkCanvas.InkPresenter.StrokeContainer.BoundingRect.Right; if (right > inkCanvas.ActualWidth - 400) { inkCanvas.Width = right + 400; }
- Аналогично для нижней стороны inkCanvas для увеличения высоты.
var bottom = inkCanvas.InkPresenter.StrokeContainer.BoundingRect.Bottom; if (bottom > inkCanvas.ActualHeight - 400) { grdCan.Height = bottom + 400; }
Проблема такая же, автоматическая прокрутка не выполняется.
Также для добавления пробела слева я использовал свойство управления потоком inkCanvas, которое работает нормально, но для добавления пробела в позицию «Верх» у меня нет решения.
любая помощь или направление были бы очень заметны.
Спасибо
Обновление: код
<Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <InkToolbar Grid.Row="0" Margin="10" x:Name="inkToolbar" VerticalAlignment="Top" TargetInkCanvas="{x:Bind inkCanvas}"> </InkToolbar> <ScrollViewer Grid.Row="1" x:Name="scrollViewer" ZoomMode="Enabled" MinZoomFactor="1" MaxZoomFactor="20" VerticalScrollMode="Enabled" VerticalScrollBarVisibility="Auto" HorizontalScrollMode="Enabled" HorizontalScrollBarVisibility="Auto"> <Grid Height="{Binding ElementName=scrollViewer, Path=ViewportHeight}" Width="{Binding ElementName=scrollViewer, Path=ViewportWidth}"> <Canvas x:Name="recognitionCanvas"/> <InkCanvas x:Name="inkCanvas"/> </Grid> </ScrollViewer> </Grid>
inkCanvas
вScrollViewer
? - person Nico Zhu - MSFT   schedule 13.04.2018if (touchEnableDisable.IsChecked == false) { inkCanvas.InkPresenter.InputDeviceTypes |= CoreInputDeviceTypes.Mouse; } else { inkCanvas.InkPresenter.InputDeviceTypes &= ~CoreInputDeviceTypes.Mouse; }
- person Ganesh Prakash Mahajan   schedule 13.04.2018