It was interesting to me, and I decided to play a little with him. I have never been an XAML expert, but I wanted to share my findings, if at all.
I added the following XAML to the Grid on the page:
<Ellipse Fill="{StaticResource b}" /> <Ellipse Grid.Row="1" Fill="{Binding Source={StaticResource c}, Path=Prop}" /> <Ellipse Grid.Row="2" Fill="{Binding Source={StaticResource d}, Path=Prop}" /> <ContentControl Grid.Row="3" Content="{StaticResource e}" /> <ContentControl Grid.Row="4" Content="{StaticResource f}" />
Here is a screenshot of the results:

The following binding error appeared in the Output window, which, it seems to me, explains why d not populated:
System.Windows.Data error: 2: Cannot find the FrameworkElement or FrameworkContentElement control for the target element. BindingExpression: Path = A; DataItem = NULL; target element is 'C' (HashCode = 60275915); target property - "Prop" (type "Brush")
It looks like there might be a problem with the binding solution for d , since it cannot find its position in the hierarchy of elements and therefore cannot resolve the DataContext.
I also noticed that if I commented on XAML, the behavior was the same as in the question. Both e and d were empty. Based on this, it seems that the use of resources can affect whether binding can be enabled at run time.
It would be great to hear from someone a deeper understanding of the inner workings of how bindings function in resources.
source share