假设我有三层(从下到上),
在MVVM(WPF)中,如何将笔画的捕获从最高的z级别移到最低的z级别? (移动时,笔划的边界矩形将用黄色填充。也就是说,仅包围笔划的区域的背景色将变为黄色,其余的InkCanvas将保持透明。)另外,我希望将笔触保持在目标InkCanvas中的相同坐标处。
TIA
最佳答案
如果我理解正确,则可以为黄色矩形添加一个附加的底层,并在创建它们后立即将其从顶层移到另一层。
XAML:
<Grid>
<Canvas x:Name="canvas"/>
<InkPresenter x:Name="inkPresenter"/>
<InkCanvas x:Name="inkCanvas" StrokeCollected="InkCanvas_StrokeCollected" Background="Transparent"/>
</Grid>
后面的代码:
void InkCanvas_StrokeCollected(object sender, InkCanvasStrokeCollectedEventArgs e) {
var stroke = e.Stroke;
inkCanvas.Strokes.Remove(stroke);
inkPresenter.Strokes.Add(stroke);
var bounds = stroke.GetBounds();
var yellowRect = new Rectangle { Width = bounds.Width, Height = bounds.Height, Fill = Brushes.Yellow };
Canvas.SetLeft(yellowRect, bounds.X);
Canvas.SetTop(yellowRect, bounds.Y);
canvas.Children.Add(yellowRect);
}
关于wpf - 在InkCanvas之间移动笔触,而仅更改笔触的背景颜色? (WPF),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42082126/