如何在 Viewbox 中使用 inktoolbar 中的标尺显示 InkCanvas

How to display InkCanvas in Viewbox with ruler in inktoolbar

InkCanvasViewbox 的子项时,墨迹工具栏中的标尺 (InkPresenterRuler) 无法正确显示。

有人知道如何解决吗?

您能否详细说明标尺为何无法为您正确显示(也许提供屏幕截图和 XAML 片段)?我对您的场景进行了快速演示,标尺为我正确显示(一切都按预期放大了 200%)。

<Grid Background="Black">
    <Viewbox Width="600" Height="600">
        <Grid Width="300" Height="300" Background="White">
            <InkCanvas x:Name="inkCanvas"/>
            <InkToolbar TargetInkCanvas="{x:Bind inkCanvas}" VerticalAlignment="Top"/>
        </Grid>
    </Viewbox>
</Grid>

经过数小时的尝试和错误,这就是我所拥有的,但是我无法在对角线方向上显示标尺。

private void ResizeInkRuler() {
  var viewBoxWidth = ImageViewBox.ActualWidth;
  var viewBoxHeight = ImageViewBox.ActualHeight;
  var widthIsGreater = viewBoxWidth.CompareTo(viewBoxHeight) > 0;

  var scaleFactor = widthIsGreater ? InkImage.ActualWidth / viewBoxWidth : InkImage.ActualHeight / viewBoxHeight;
  var length = widthIsGreater ? viewBoxWidth : viewBoxHeight;
  ruler.Transform = Matrix3x2.CreateScale((float) scaleFactor);
  ruler.Length = length;
}