You can define your own DynamicResourceExtension
[MarkupExtensionReturnType(typeof(Color))]
[Localizability(LocalizationCategory.NeverLocalize)]
public class ColorFromBrushResourceExtension(string resourceKey) : DynamicResourceExtension(resourceKey)
{
public override object ProvideValue(IServiceProvider serviceProvider)
{
return base.ProvideValue(serviceProvider) is SolidColorBrush brush
? brush.Color
: Colors.Transparent;
}
}
And use it this way:
<SolidColorBrush
x:Key="MyBrush"
Color="{utils:ColorFromBrushResource OtherBrush}"
Opacity="0.56"
po:Freeze="True" />