Цвет DynamicResource не работает для BorderBrush на границе - ошибка?
Visual Studio 2010 | .NET / WPF 4.0
Я думаю, что это может быть ошибка WPF, но я не могу найти отчет об ошибке об этом. Чтобы понять, что я просто упускаю что-то очевидное, я обращаюсь к stackoverflow за ответами!
Рассмотрим этот xaml (ничего в коде позади):
<Window x:Class="DownExpanders.BorderTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BorderTest" Height="300" Width="300">
<Window.Resources>
<Color x:Key="BackgroundColor" R="255" G="0" B="0" A="255"/>
<Color x:Key="BorderColor" R="0" G="0" B="255" A="255"/>
<SolidColorBrush x:Key="BorderColorBrush" Color="{DynamicResource BorderColor}"/>
</Window.Resources>
<Grid>
<Border BorderThickness="20">
<Border.Background>
<SolidColorBrush Color="{DynamicResource BackgroundColor}"/>
</Border.Background>
<Border.BorderBrush>
<SolidColorBrush Color="{DynamicResource BorderColor}"/>
</Border.BorderBrush>
</Border>
<Border Margin="40" BorderBrush="{DynamicResource BorderColorBrush}" BorderThickness="20"/>
</Grid>
</Window>
В дизайнере он рендерится как положено. Внешняя граница имеет большую синюю рамку и красный фон, внутренняя граница имеет большую синюю рамку. Отлично.
Когда я запускаю код, внешняя граница не имеет границы - похоже, она просто не загружается. Фон установлен на красный правильно. Между тем, внутренняя граница правильно загружает свою синюю рамку.
Если я изменю все «DynamicResource» на «StaticResource», он будет правильно отображаться при запуске. Несоответствие действительно беспокоит меня, и я не могу понять это. \ Так:
Почему DynamicResource не работает для BorderBrush?
Учитывая № 1, почемуделает это работает для фона?Почему явное определение однотонной кисти в ресурсах, кажется, исправляет ситуацию?РЕДАКТИРОВАТЬ:Похоже, это ошибка, которую MS решила не исправлять (спасибо
Шеридан по ссылке):http://connect.microsoft.com/VisualStudio/feedback/details/589898/wpf-border-borderbrush-does-not-see-changes-in-dynamic-resourceИнтересно, что все еще происходит в .net 4.5.50760, поэтому, если это ошибка, они еще не исправили ее.