2017-06-27 19 views
1

InkCanvasの終わり近くにユーザーのインクがOneNoteのようになったときに、高さまたは幅を(スクロールで)InkCanvasに増やしたいとします。InkCanvasの高さまたは幅を(スクロールで)増加させる方法

策が試み:

  1. 私はInkCanvasためScrollViewerを試みたが、それは私がそれを再スタイリングを考え
  2. を動作しませんでしたが、私はgeneric.xaml
  3. InkCanvasを見つけることができませんここで

はInkCanvasのために私のコードです:

<ScrollViewer Grid.Row="1"> 
    <Grid> 
     <InkCanvas Name="PATH_INK_CANVAS" Canvas.ZIndex="-1"/> 
     <RichEditBox Name="PATH_RICH_EDIT_BOX" Canvas.ZIndex="0" PlaceholderText="Input Text" Style="{StaticResource RichEditBoxStyle}"/> 
    </Grid> 
</ScrollViewer> 

答えて

1

Bound of InkがInkCanvasで、ActualSizeがInkCanvasであるものと比較して、必要ならばInkCanvasを増やしてください。これは以下のコードを使って行うことができます。

public MainPage() 
{ 
    this.InitializeComponent(); 
    PATH_INK_CANVAS.InkPresenter.StrokeInput.StrokeEnded += StrokeInput_StrokeEndedAsync; 
} 

private async void StrokeInput_StrokeEndedAsync(InkStrokeInput sender, PointerEventArgs args) 
{ 
    await Task.Delay(100); 

    var XBound = PATH_INK_CANVAS.InkPresenter.StrokeContainer.BoundingRect.Bottom; 
    if (XBound > PATH_INK_CANVAS.ActualHeight - 400) 
     PATH_INK_CANVAS.Height = XBound + 400; 

    var YBound = PATH_INK_CANVAS.InkPresenter.StrokeContainer.BoundingRect.Right; 
    if (YBound > PATH_INK_CANVAS.ActualWidth - 400) 
     PATH_INK_CANVAS.Width = YBound + 400; 
} 
関連する問題