我今天看到了微软的白板,我喜欢它的基础inkCanvas(我的猜测)。我决定使用inkCanvas在UWP应用程序中创建一个控件,其行为类似于Microsoft的白板UWP应用程序。 Microsoft UWP Whiteboard - 我的目标如下:
var right = inkCanvas.InkPresenter.StrokeContainer.BoundingRect.Right; if (right > inkCanvas.ActualWidth - 400) { inkCanvas.Width = right + 400; }
var bottom = inkCanvas.InkPresenter.StrokeContainer.BoundingRect.Bottom; if (bottom > inkCanvas.ActualHeight - 400) { grdCan.Height = bottom + 400; }
问题是同样的,它没有自动滚动。
另外,为了在左侧添加空间,我使用了inkCanvas的flowcontrol属性,它工作正常,但是为了在“Top”位置添加空间,我没有解决方案。
任何帮助或方向都会非常明显。
谢谢
更新:代码
<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>