Стиль окна с лентой WPF от Microsoft не соответствует стилю Windows 8

Я использую версию Windows 8 и Visual Studio 2012 для создания приложения WPF с элементом управления ленты. Я выбираю ленточный элемент управления, который поставляется с WPF в.Net Framework 4.5.

Мой код для создания ленты:

<RibbonWindow
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfExperiments" x:Class="WpfExperiments.MainWindow"
    Title="MainWindow" Height="350" Width="525" Icon="Test.ico">
<Ribbon>        
    <Ribbon.ApplicationMenu>
        <RibbonApplicationMenu>
            <RibbonApplicationMenuItem Header="Item 1"></RibbonApplicationMenuItem>
        </RibbonApplicationMenu>
    </Ribbon.ApplicationMenu>
    <Ribbon.QuickAccessToolBar>
        <RibbonQuickAccessToolBar>
            <RibbonButton SmallImageSource="Test.ico" Label="Test"></RibbonButton>
        </RibbonQuickAccessToolBar>
    </Ribbon.QuickAccessToolBar>
</Ribbon>

Но проблема в том, что он генерирует окно с уродливым стилем, который не соответствует стилю Windows 8:

Моя лента

Сравните это с лентой исследователя. Заголовок окна центрируется (и имеет другой цвет), а размер границы окна отличается. Стиль ленты не тот же, но я был бы удовлетворен, если бы у меня был тот же стиль ленты, что и в MS Word (который отображается правильно в Windows 8).

Лента Explorer в Windows 8

Элемент управления ленты для WPF не поддерживает новый стиль Windows 8? Или я пропустил какие-либо настройки?

Редактировать:

Я начал редактировать шаблон в Blend (4.0, у меня нет доступа к 5.0). После исправления некоторых ошибок компиляции (кажется, это ошибки в blend), я могу запустить приложение, но оно выглядит так:

Но это не хорошая отправная точка для моих изменений...

1 ответ

Лента WPF не является оберткой для элемента управления, предлагаемого операционной системой (как и большинство элементов управления Windows Forms), но создана с нуля, чтобы иметь внешний вид ленты в то время, когда она была разработана, будучи элементом управления, который является такой же гибкий, как и другие элементы управления WPF (обратите внимание на поддержку частей шаблона).

Тем не менее, дело в том, что элемент управления (в настоящее время) не обновляется для поддержки стиля Windows 8. Учитывая количество шаблонов для нескольких элементов управления, которые необходимо изменить, а также необходимость обратной совместимости (и это мое предположение на данный момент), это могло рассматриваться как не приоритет, когда была выпущена.NET 4.5.

Возможно, вы сможете изменить тему самостоятельно, но это выглядит как сложная задача, поэтому вам стоит использовать сторонний элемент управления, который уже реализует стиль ленты Windows 8.

Другие вопросы по тегам