Как сказал Элад Кац , я не думаю, что есть какой-либо прямой способ узнать, применяется ли ScaleTransform
к какому-либо из родителей, не проходя их.
Однако, есливы знаете, что ScaleTransform
применяется к MainGrid, тогда вы можете связать RenderAtScale
с ScaleX
или ScaleY
из MainGrid ScaleTransform
.Может быть, это то, что вы уже делаете, но я все равно добавлю это в качестве подсказки
Вероятно, самый простой способ сослаться на ScaleTransform
в привязке - это назвать его
<Grid Name="MainGrid">
<Grid.LayoutTransform>
<TransformGroup>
<ScaleTransform x:Name="MainGridScaleTransform" .../>
</TransformGroup>
</Grid.LayoutTransform>
Привязка должна выглядеть примерно так:
<BitmapCache RenderAtScale="{Binding ElementName=MainGridScaleTransform,
Path=ScaleX}"/>
В противном случае вы можете получить ScaleTransform
на Пути с TransformGroup
<BitmapCache RenderAtScale="{Binding ElementName=MainGrid,
Path=(LayoutTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)}"/>
или без TransformGroup
<BitmapCache RenderAtScale="{Binding ElementName=MainGrid,
Path=(LayoutTransform).(ScaleTransform.ScaleX)}"/>