Приложения WPF зависают при добавлении устройств DirectInput - PullRequest
0 голосов
/ 07 ноября 2018

Раньше я добавлял джойстики в свои приложения WinForms, используя класс Microsoft.DirectX.DirectInput.Device. Теперь я хочу сделать то же самое с WPF.

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Interop;

using Microsoft.DirectX.DirectInput;

namespace JoysticksTest
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            // HANGS WHEN ENTERING DetectInstalledDevices METHOD!!!
            DetectInstalledDevices();
        }

        private void DetectInstalledDevices()
        {
            // Find all the GameControl devices that are attached.
            DeviceList gameControllerList = Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly);

            // check that we have at least one device.
            if (gameControllerList.Count > 0)
            {
                for (int i = 0; i < gameControllerList.Count; i++)
                {
                    // Move to the first device
                    gameControllerList.MoveNext();

                    DeviceInstance deviceInstance = (DeviceInstance)gameControllerList.Current;

                    if (deviceInstance.DeviceType == DeviceType.Joystick)
                    {
                        // Some code here   
                    }
                }
            }
        }
    }
}

Но мое приложение WPF просто зависает.

Что я делаю не так? На моем компьютере установлена ​​ОС Windows 8.1.

Это WPF или неправильная версия Microsoft.DirectX.DirectInput.dll?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...