ElementHost не обновляется после того, как книга переместилась над ним в Excel 2010

У меня есть проблема с ElementHost на CustomTaskPane в Excel 2010 32bit на Windows 7 x64, .NET 4.0

Контроль внутри хоста (или самого хоста) не перерисовывается после перемещения окна книги. Чтобы проиллюстрировать это, я создал образец:

_host = new ElementHost { Dock = DockStyle.Fill, BackColorTransparent = false, BackColor = Color.Blue }; _userControl = new UserControl(); _userControl.Controls.Add(_host); _taskPane = CustomTaskPanes.Add(_userControl, "Pane"); _taskPane.Visible = true; 

Я просто пропустил дочерний контроль для простоты, так как результат тот же.

Вот как это выглядит так, как ожидалось: введите описание изображения здесь

Теперь я немного переместил книгу, и я понял: введите описание изображения здесь

Очевидно, что серые и черные области не ожидаются (тот же результат с фактическим контролем). Обновление _host исправляет проблему – рецензирует себя и ребенка, но проблема в том, что я не обнаружил, что какое-либо событие в VSTO обнаружило при перемещении книги.

Вопросов:

  1. Откуда берутся эти черные / серые области?
  2. Можно ли избежать / исправить это и как?
  3. (в качестве обходного пути) Можно ли обнаружить движение окна книги, чтобы я мог обновить _host и проголосовать за его единственный сценарий? (плохая идея)

Другие тесты показывают, что элементы управления формами Windows не страдают от такого поведения.

Заранее спасибо.

Вы должны поместить в элемент ElementHost настоящий пользовательский элемент управления XAML.

В пользовательском элементе управления WPF создайте сетку с фоном color = blue.

Не полагайтесь на сам элемент

Также проверяйте обновления, elementHost в VSTO получает много ошибок.

  • Слияние документов Excel
  • WPF Сравнение двух типов данных для поиска совпадающих значений
  • Преобразование в формат даты показывает # ВАЛЮТА! в отчете Excel rdlc
  • Экспорт Datatable
  • wpf Excel, как открыть файл excel внутри окна
  • Запустите приложение WPF от excel, как вернуть фокус в excel
  • получить данные, скопированные из файла excel в приложении в форме массива строк
  • Передача имени файла между OpenFileDialog и SaveFileDialog
  • Данные о прохождении потока и закрытие окна
  • VSTO WPF ContextMenu.MenuItem Щелкните вне панели задач, которая не поднята
  • Не удалось инициализировать CustomTaskPane в проекте Excel 2010 Workbook
  • Interesting Posts

    получение значения null при чтении значения ячейки с использованием макроса excel

    Сопоставьте, потяните и добавьте числа из разных ячеек на другом листе

    Импорт из .xlsx в SPSS работает только после сохранения файла снова

    Лучший способ снять время с истинной даты?

    Как использовать функцию CUBEMEMBERPROPERTY

    Файл с разделителями-табуляторами, открытый в Excel, вызванный c #, неверно интерпретирующий текст до дат

    Excel – имя предыдущего листа при определении sourcedata для диаграммы

    Я пытаюсь сделать динамическое смещение диапазона, но я получаю сообщение об ошибке

    Экземпляр Excel отображает наибольшее значение для самого маленького в другой формуле столбца

    Как нарисовать диаграмму с помощью excel с помощью python?

    Цикл Excel VBA с циклом, выполняющимся определенное количество раз на основе ввода соты

    VBS GetObject не будет привязан к сохраненным книгам

    Вложенные петли в VBA Excel

    Добавление изображения приводит к тому, что связанное изображение не отображается. Excel VBA

    Использовать оператор IF с # N / A?

    Давайте будем гением компьютера.