Повторно размещенный конструктор рабочих процессов - просмотр только для чтения

Я повторно разместил конструктор рабочих процессов в моем собственном приложении. Теперь я хочу сделать представление рабочего процесса доступным только для чтения. Я знаю, что могу запретить перетаскивание, но удаление и перемещение также следует отключить. Я по-прежнему хочу, чтобы пользователь мог прокручивать представление.

Кто-нибудь может помочь.

С уважением, Майкл


person Michael Bendtsen    schedule 03.11.2009    source источник


Ответы (2)


Вы можете получить доступ к представлению дизайнера, чтобы делать такие вещи.

var designerView = myDesigner.Context.Services.GetService<DesignerView>();

Затем установите режим только для чтения.

designerView.IsReadOnly = true;

Это также сделает просмотр свойств доступным только для чтения - не уверен, требуется ли это вам или нет.

person Luke Edwards    schedule 13.06.2012

Я придумал это решение:

  1. Создал MessageFilter, унаследованный от WorkflowDesignerMessageFilter, и прикрепил его к WorkflowView.
  2. Переопределить метод OnKeyDown

        if (eventArgs.KeyCode == Keys.Delete)
        {
            if(m_WorkflowView.AllowDrop)
            {
                return base.OnKeyDown(eventArgs);
            }
        }
        return true;
    

В этом случае я установил для AllowDrop значение false в режиме просмотра только для чтения и true в DesignTime. Если у кого-то есть предложение получше, дайте мне знать.

С уважением, Майкл

person Michael Bendtsen    schedule 03.11.2009