UWP inkCanvas无限表面与微软白板应用程序相同

时间:2018-04-12 12:42:28

标签: c# uwp windows-store inkcanvas whiteboard

我今天看到了微软的白板,我喜欢它的基础inkCanvas(我的猜测)。我决定使用inkCanvas在UWP应用程序中创建一个控件,其行为类似于Microsoft的白板UWP应用程序。 Microsoft UWP Whiteboard   - 我的目标如下:

  1. 它应该增加宽度&如果inkCanvas在右侧附近绘制任何形状,则向右滚动。我尝试下面的代码,它正在工作但不滚动微软的白板工作方式。
  2. var right = inkCanvas.InkPresenter.StrokeContainer.BoundingRect.Right;
            if (right > inkCanvas.ActualWidth - 400)
            {
                inkCanvas.Width = right + 400;
            }
    
    1. 类似于inkCanvas底部增加高度。
    2. 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>
      

0 个答案:

没有答案