Я создал приложение 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>
Microsoft воспроизвела проблему, и похоже, что это ошибка в WPF 4.0.
По результатам исследования Сделано лицом, отправившим ошибку, я взял все наши отдельные файлы ресурсов XAML, которые включены в объединенный словарь ресурсов, и вырезал и вставил текст стиля в один файл UberStyles.xaml. Я избегал любого использования MergedDictionaries.
Это решило проблему, и моя информация о стиле из моего приложения WPF 3.5 вернулась к моему приложению WPF 4.0.
На мой взгляд, это явная ошибка в WPF 4.0 - я не совсем уверен, как вы отразите это как функцию, а поведение недокументировано. Меня немного беспокоят последствия этого для платформы WPF 4.0 в целом. Вы могли подумать, что это было обнаружено при тестировании Visual Studio 2010 Release!
В любом случае, надеюсь, это поможет. Я сошел с ума от этой ошибки с тех пор, как две недели назад мы обновились до VS2010.
Наткнулся на следующее:
Как установить стиль окна WPF по умолчанию в app.xaml?
Ответ заключается в том, что стиль не будет применяться к производным типам.
У меня та же проблема. Мы разработали библиотеку с настраиваемыми стилями для каждого стандартного элемента управления, она отлично работает под .net 3.5 как при разработке, так и во время выполнения. Сегодня мы решили переключить наши проекты на .net4 (wpf 4 имеет много новых интересных функций) . После этого во время выполнения все подобные стили не работают во время выполнения, но применяются в дизайнере:
<Style TargetType={x:Type Button}>
<Setter Property="FontSize" Value="14"/>
</Style>
Стили с установленным ключом x: работают нормально. Но нам нужно установить стиль по умолчанию для темы, а не устанавливать его для каждого элемента управления.