Я не читал/не обнаружил какой-либо известной проблемы, связанной с просмотром приложений WPF через удаленное соединение. Однако, если вы думаете о , как работает работа с удаленными подключениями, я хотел бы рискнуть несколькими догадками к проблеме и даже, возможно, решением.
При установке любого программного обеспечения для удаленного рабочего стола вы действительно выполняете две задачи: настройку ретранслятора для передачи команд ввода и добавление -адаптера отображения, который выступает в качестве сервера кадров, монитор отправляет информацию по сети.
Как вы знаете, WPF использует DirectX для ускорения его рендеринга (привязка к GPU), и это несчастливое ограничение, что все ускорения графической карты не работают через соединение с удаленным рабочим столом.
Я уверен, что в вашем конкретном случае WPF не возвращается к использованию конвейера рендеринга программного обеспечения при попытке нарисовать контекстное меню - возможно, потому, что контекстное меню - это Popup
и в отдельном визуальном дереве.
Что-то, что стоит попробовать, - это сила вашего приложения WPF для использования рендеринга программного обеспечения.
void OnLoaded(object sender, EventArgs e)
{
HwndSource hwndSource = (HwndSource)PresentationSource.FromVisual(this);
HwndTarget hwndTarget = hwndSource.CompositionTarget;
hwndTarget.RenderMode = RenderMode.SoftwareOnly;
}
Если это окажется так, то у вас есть два варианта: заставить WPF использовать программное обеспечение визуализации трубопровода или попробовать развертывания high-performance remote desktop access software решение от компании Hewlett Packard.
HTH,
Ссылки
- Microsoft guidelines for troubleshooting graphic issues in WPF.
- Hardware Acceleration in WPF
- HP Remote Graphics Software
Update: Для других искать и находить этот ответ, вы должны изменить клиент VNC для включения альфа-смешивания. Как отметил @mcdrewski, по умолчанию VNC не будет обнаруживать/отображать альфа-смешанные окна. Включение альфа-смешивания связано с затратами, и вы заметите, что клиент VNC немного отстает.
+1 Я собирался предположить, что WPF может использовать аппаратный рендеринг, который не будет передаваться по каналу. Это создает проблему и потенциальное решение. Хороший ответ ... –
Спасибо за ваш ответ. Я попытался отобразить все приложение или только контекстное меню с режимом SortwareOnly, но не решил проблему. –
Я нашел решение. Мне просто нужно было проверить 'enable alpha blending'. Я получил это из этого блога. http://mikestedman.blogspot.com/2009/02/wpf-transparent-windows-and-vnc.html. Во всяком случае, я выбрал ваш ответ. Thnx. –