Правитель (InkPresenterRuler
) в inktoolbar отображается неправильно, когда InkCanvas
является дочерним по отношению к Viewbox
.Как отображать InkCanvas в окне просмотра с линейкой в inktoolbar
Кто-нибудь понял, как это исправить?
Правитель (InkPresenterRuler
) в inktoolbar отображается неправильно, когда InkCanvas
является дочерним по отношению к Viewbox
.Как отображать InkCanvas в окне просмотра с линейкой в inktoolbar
Кто-нибудь понял, как это исправить?
После нескольких часов безуспешных попыток и ошибок, это то, что у меня есть, однако я не мог получить дисплей линейки в диагональном направлении.
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;
}
Не могли бы вы рассказать о том, как правильная фигура правильна для вас (возможно, вы получите снимок экрана и фрагмент 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>
Спасибо, Десятилетие, вы знаете, как я могу масштабировать его до первоначального размера? – Jennifer