Стиль окна WPF, не работающий во времени выполнения

Я создал приложение WPF в Экспрессе Visual Studio 2010 года (C#) и добавил текст ниже к Приложению. Ресурсы в App.xaml. Я вижу, что стиль относился к окну в разработчике, но когда я запускаю приложение, фон окна является белым.

Выполнение в Windows XP на BootCamp на MacBook Pro, если это - фактор.

Заранее спасибо,

Христианин

    <Style TargetType="{x:Type Window}">
        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                    <GradientStop Offset="0" Color="WhiteSmoke" />
                    <GradientStop Offset="1" Color="Silver" />
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>

        <Setter Property="Padding" Value="20" />
    </Style>
9
задан Dave Clemmer 16 August 2011 в 16:16
поделиться

3 ответа

Microsoft воспроизвела проблему, и похоже, что это ошибка в WPF 4.0.

https://connect.microsoft.com/VisualStudio/feedback/details/555322/global-wpf-styles-are-not-shown-when-using-2-levels-of-references

По результатам исследования Сделано лицом, отправившим ошибку, я взял все наши отдельные файлы ресурсов XAML, которые включены в объединенный словарь ресурсов, и вырезал и вставил текст стиля в один файл UberStyles.xaml. Я избегал любого использования MergedDictionaries.

Это решило проблему, и моя информация о стиле из моего приложения WPF 3.5 вернулась к моему приложению WPF 4.0.

На мой взгляд, это явная ошибка в WPF 4.0 - я не совсем уверен, как вы отразите это как функцию, а поведение недокументировано. Меня немного беспокоят последствия этого для платформы WPF 4.0 в целом. Вы могли подумать, что это было обнаружено при тестировании Visual Studio 2010 Release!

В любом случае, надеюсь, это поможет. Я сошел с ума от этой ошибки с тех пор, как две недели назад мы обновились до VS2010.

11
ответ дан 4 December 2019 в 20:22
поделиться

Наткнулся на следующее:

Как установить стиль окна WPF по умолчанию в app.xaml?

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

0
ответ дан 4 December 2019 в 20:22
поделиться

У меня та же проблема. Мы разработали библиотеку с настраиваемыми стилями для каждого стандартного элемента управления, она отлично работает под .net 3.5 как при разработке, так и во время выполнения. Сегодня мы решили переключить наши проекты на .net4 (wpf 4 имеет много новых интересных функций) . После этого во время выполнения все подобные стили не работают во время выполнения, но применяются в дизайнере:

 <Style TargetType={x:Type Button}>
      <Setter Property="FontSize" Value="14"/>
 </Style>

Стили с установленным ключом x: работают нормально. Но нам нужно установить стиль по умолчанию для темы, а не устанавливать его для каждого элемента управления.

0
ответ дан 4 December 2019 в 20:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: