Условие if оценивается только один раз, поэтому нет причин менять цвет во время рисования.К сожалению, похоже, что события «onpressurechanged» не происходит, поэтому вам, вероятно, придется настроить цикл, который проверяет давление каждые x миллисекунд и соответствующим образом корректирует цвет.Поскольку вы не хотите замораживать пользовательский интерфейс, вам необходимо либо запустить его в другом потоке и передать изменение цвета обратно в поток пользовательского интерфейса, либо вы можете поставить проверки давления в диспетчере окон с приоритетом applicationIdle.Это будет выглядеть примерно так:
void checkPressure(InkCanvas inkcan)
{
//return if touch is lifted code here
DrawingAttributes dattribute = new DrawingAttributes();
if (stylusInput.pressureFactor < 0.5)
dattribute.Color = Colors.Red;
else
dattribute.Color = Colors.Blue;
inkcan.DefaultDrawingAttributes = dattribute;
this.Dispatcher.BeginInvoke(new MyPressureDelegate(checkPressure), DispatcherPriority.ApplicationIdle, inkcan);
}
при условии, что ваш стилус Input разделяет область действия с функцией, конечно.В противном случае вам нужно будет передать его вместе с холстом в массиве объектов.