是否有可能ScaleTransform Canvas/Grid上的所有内容除了1 Control之外?

Dyl*_*lan 3 wpf

给出以下画布:

<Canvas>
    <Canvas.LayoutTransform>
        <ScaleTransform ScaleX="1" ScaleY="1" CenterX=".5" CenterY=".5" />
    </Canvas.LayoutTransform>
    <Button x:Name="scaleButton" Content="Scale Me" Canvas.Top="10" Canvas.Left="10" />
    <Button x:Name="dontScaleButton" Content="DON'T Scale Me" Canvas.Top="10" Canvas.Left="50" />
</Canvas>
Run Code Online (Sandbox Code Playgroud)

当ScaleX和ScaleY发生变化时,是否可以缩放1个按钮,而不能缩放另一个按钮?

Fra*_*nov 9

不在XAML中.您可以通过构建反向转换并将其应用于您不想转换的对象来在代码中执行此操作.

如果你想要花哨,你可以构建一个依赖属性,你可以在XAML中将它附加到你不希望被任何父变换转换的任何对象.此依赖项属性将采用父变换,构建反向变换并将其应用于它所附加的对象.


H.B*_*.B. 6

当你问这个问题时不确定这是不可能的,但我会这样做:

<Button x:Name="dontScaleButton" Content="DON'T Scale Me" Canvas.Top="10" Canvas.Left="50"
        LayoutTransform="{Binding LayoutTransform.Inverse,
                                  RelativeSource={RelativeSource AncestorType=Canvas}}"/>
Run Code Online (Sandbox Code Playgroud)

原始变换似乎仍然对按钮有转换效果.