Обновление цвета контура формы отсека при перетаскивании в DSL - PullRequest
2 голосов
/ 23 июня 2010

Я надеюсь, что смогу проверить, хочет ли пользователь сделать правильное перетаскивание, и это указано цветом целевого объекта CompartmentShape, я сделал следующее, что дает мне возможность правильно проверить, мне просто нужно обновить пользовательский интерфейс

    public override void OnDragDrop(DslDiagrams.DiagramDragEventArgs e)
    {
        BCSDataSourceTypes dataSourceType = GetDataSourceType(e.Data);

        if (dataSourceType == BCSDataSourceTypes.Unknown)
        {
            return;
        }

        FieldInfo info = e.Data.GetType().GetField("innerData", BindingFlags.NonPublic | BindingFlags.Instance);
        object obj = info.GetValue(e.Data);
        info = obj.GetType().GetField("innerData", BindingFlags.NonPublic | BindingFlags.Instance);
        System.Windows.DataObject dataObj = info.GetValue(obj) as System.Windows.DataObject;

        if (dataObj != null)
        {
            SqlStoredProcedure storedProcedure = dataObj.GetData(typeof(SqlStoredProcedure)) as SqlStoredProcedure;
            if (storedProcedure != null)
            {
                MessageBox.Show(string.Format("{0} is valid here", storedProcedure.Name));
            }
        }

        e.Handled = true;
    }

Моя проблема в том, что я не могу получить какую-либо ссылку на цвет контура, любая помощь очень ценится.

1 Ответ

2 голосов
/ 06 января 2011

Вам необходимо добавить выставленное свойство (щелкните правой кнопкой мыши на фигуре и выберите «Добавить выставленное»)

С наилучшими пожеланиями

...