我很难理解为什么我可以更改画笔颜色但不能更改SurfaceInkCanvas
中的画笔半径。
这是我的工作:
Double newSize = Math.Round(BrushRadiusSlider.Value,0);
drawingAttributes = new System.Windows.Ink.DrawingAttributes();
// Works :
drawingAttributes.Color = Colors.Yellow;
// Does not work :
drawingAttributes.Width = newSize;
drawingAttributes.Height = newSize;
canvas.DefaultDrawingAttributes = drawingAttributes;
有关信息,BrushRadiusSlider
是XAML中的滑块,其值介于1和100之间。
答案 0 :(得分:2)
见这里:
SurfaceInkCanvas.DefaultDrawingAttributes Property
您可能忘记将UsesTouchShape
设置为 false
答案 1 :(得分:0)
问题是我认为当滑块的值改变时刷子不会更新。上面的代码在某个时刻获取滑块的值,并将宽度和高度设置为该值,但它没有链接到滑块。
要在滑块更改时更新它,您需要处理SliderValueChanged事件并重置drawingAttributes。
XAML:
<Slider x:Name="BrushRadiusSlider" Minimum="1" Maximum="100" Value="1" ValueChanged="SliderValueChanged"/>
代码:
private void SliderValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (canvas != null)
{
var drawingAttributes = canvas.DefaultDrawingAttributes;
Double newSize = Math.Round(BrushRadiusSlider.Value, 0);
drawingAttributes.Width = newSize;
drawingAttributes.Height = newSize;
}
}