Использование StaticResource и x:Static в коде позади
Мне нравится этот стиль плоской кнопки:
<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" BorderThickness="0" ... />
Попытка создать такую кнопку в коде сзади:
var button = new Button
{
Style = (Style)Application.Current.FindResource("ToolBar.ButtonStyleKey"), // wrong
BorderThickness = new Thickness(0),
...
};
Кинет
Исключение типа "System.Windows.ResourceReferenceKeyNotFoundException" произошло в WindowsBase.dll, но не было обработано в коде пользователя
Дополнительная информация: ресурс 'ToolBar.ButtonStyleKey' не найден.
1 ответ
Решение
Согласно вашему рабочему коду он должен выглядеть так:
Style = (Style)Application.Current.FindResource(ToolBar.ButtonStyleKey)
Другими словами, отбросьте цитаты. ButtonStyleKey
это не имя, это статическое свойство, которое возвращает строку с правильным именем.