2015-08-27 6 views
1

Я пытаюсь создать пользовательский интерфейс, подобный тем, которые появляются в Microsoft в наши дни. В частности, те, которые ориентированы на операционную систему Windows 10 (a la Office 2016).Windows 10 UI в WinAPI

В настоящее время я использую WinAPI, но все элементы управления, предоставляемые Windows.h и CommCtrl.h, выглядят как элементы интерфейса устаревшего/старого стиля. Я особенно ищу элементы заголовка/меню/строки состояния (основная клиентская зона будет состоять из контекста GDI/Direct2D, поэтому ничего особенного там не требуется).

Я нашел некоторую информацию, указывающую на XAML, но я не думаю, что это то, что я хочу. WPF, кажется, скорее вероятный кандидат, но я не уверен, что это так.

Я хотел бы, чтобы это было на 100% родным (WinAPI/C & C++), но если нет абсолютно никакой другой опции, я могу использовать C# для UI и заглушки в собственном коде.

+0

Да, вы правы, это был VS, который использует wpf. Однако пользовательский хром-код по-прежнему полезен. –

+1

Новый офис 2016 выполнен в WinRT/Xaml как Windows Universal App – Liero

+1

Вы не можете получить интерфейс «нового вида» в рабочем столе WinAPI без эмуляции его самостоятельно. К счастью, все это просто капли сплошного цвета, поэтому это, вероятно, не сложно. –

ответ

1

Вы используете XAML или C++, C# или JavaScript для записи приложения Windows Store (ранее Metro). Если вы используете C++, приложение на 100% является родным, но если вы используете C# или JavaScript, конечно, используется требуемая виртуальная машина.

API, что ваш код вызывает WinRT, который выглядит как Silverlight. Кроме того, ваше приложение может также вызвать некоторые, но не все, API Win32, похожий на то, как приложения .NET могут вызывать Win32 (например, с помощью P/Invoke). Однако, даже если вы используете C++ и, следовательно, ваше приложение на 100% является родным, оно все еще изолировано как браузер. Это означает, что он не может делать такие вещи, как доступ ко всему диску или запись в HKLM в реестре. Это для безопасности; приложение Windows Store должно быть безопасным и, следовательно, более ограниченным, как мобильное приложение, которое вы покупаете из Apple AppStore. Это означает, что вы не можете позвонить, например. CreateFile. Это говорит:

Минимальных поддерживаемый клиент Windows XP [настольные приложения только]

Когда MS упоминает, как указано выше, они означают Win32 приложения 'настольные приложения'. Это исключает приложения Windows Store. Но это запутывает, потому что в Win 8/8.1 эти приложения Windows Store имеют полный экран, но в Windows 10 они изменяются и перекрываются, появляются рядом с ними и смешиваются с традиционными приложениями Win32, такими как Explorer и Task Manager. Поэтому, несмотря на то, что они отображаются на одном рабочем столе, например Desktop, они не являются приложениями для настольных компьютеров.

Я считаю, что приложение Windows Store также предназначено для Windows Phone 10, Windows IoT и т. Д., Тогда оно называется универсальным приложением Windows.

+0

После небольшого рытья прошлой ночью это определенно похоже на то, что мне нужно.К сожалению, панели «лента»/«команда» не являются элементами Windows и должны настраиваться под заказ (или использовать сторонний вариант, например BCGControlBar или DotNetBar). – deaddodo

+0

Существует [Рамка ленты Windows] (https://msdn.microsoft.com/en-us/library/windows/desktop/dd371191 (v = vs.85) .aspx), но, похоже, это только рабочий стол:/Не уверен, что UWP также имеет ленту. – andlabs

+0

Если ваше приложение будет придерживаться лент и других традиционных общих элементов управления, то в чем преимущество создания приложения для Windows Store? @andlabs: MS предоставляет платформу Ribbon Framework, а также ленту MFC от BCGSoft, но да, это только для настольных приложений. Им потребовалось много лет, чтобы обеспечить их, поэтому я думаю, что для выпуска версии WinRT потребуется очень много времени. Тем не менее, есть много сторонних. –

Смежные вопросы