Создайте следующий вспомогательный метод:
public string GetDynamicResourceKey(DependencyObject dObj, DependencyProperty dp)
{
var value = dObj.ReadLocalValue(dp);
var converter = new ResourceReferenceExpressionConverter();
var dynamicResource = converter.ConvertTo(value, typeof(MarkupExtension)) as DynamicResourceExtension;
return dynamicResource?.ResourceKey as string;
}
Теперь используйте его с вашим TextBlock
:
var resourceKey = GetDynamicResourceKey(txMy, TextBlock.TextProperty);
Я адаптировал это решение с здесь .