Я не читал / не обнаружил ни одной известной проблемы, связанной с просмотром приложений WPF через удаленное соединение.Однако, если вы подумаете о , как работают удаленные соединения, я бы хотел дать несколько предположений о проблеме и даже, возможно, о ее решении.
При установке любого программного обеспечения для удаленного рабочего стола вы действительно делаете две вещи: настраиваете ретранслятор для ретрансляции входных команд и добавляете дисплейный адаптер , который действует как сервер кадров, т. Е. Вместо выводасодержимое экрана на монитор отправляет информацию по сети.
Как вы знаете, WPF использует DirectX для ускорения рендеринга (с привязкой к графическому процессору), и к сожалению, ограничение ускорения всех графических карт не работает через подключение к удаленному рабочему столу.
Я считаю, чтов вашем конкретном случае происходит то, что WPF не использует свой программный конвейер рендеринга при попытке нарисовать контекстное меню - возможно, потому что контекстное меню представляет собой Popup
и находится в отдельном визуальном дереве.
Стоит попробовать заставить ваше приложение WPF использовать программное рендеринг.
void OnLoaded(object sender, EventArgs e)
{
HwndSource hwndSource = (HwndSource)PresentationSource.FromVisual(this);
HwndTarget hwndTarget = hwndSource.CompositionTarget;
hwndTarget.RenderMode = RenderMode.SoftwareOnly;
}
Если это действительно так, у вас есть два варианта:заставьте WPF использовать конвейер рендеринга программного обеспечения или попробуйте развернуть высокопроизводительное программное обеспечение для удаленного доступа к рабочему столу от Hewlett Packard.
HTH,
Ссылки
- Рекомендации Microsoft по устранению графических проблем в WPF.
- Аппаратное ускорение вWPF
- ПО для удаленной графики HP
Обновление: Для других пользователей, которые ищут и находят этот ответ, вам нужно изменить настройки клиента VNCвключить альфа-смешение .Как отметил @mcdrewski, по умолчанию VNC не обнаруживает / рендерит окна с альфа-смешиванием.Включение альфа-смешивания требует больших затрат, и вы заметите, что клиент VNC немного запаздывает.