Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 除了1个控件外,是否可以在画布/网格上缩放所有内容?_Wpf - Fatal编程技术网

Wpf 除了1个控件外,是否可以在画布/网格上缩放所有内容?

Wpf 除了1个控件外,是否可以在画布/网格上缩放所有内容?,wpf,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" Canv

给定以下画布:

<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>


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

不在XAML中。通过构建反向变换并将其应用于不希望变换的对象,可以在代码中实现这一点


如果您想做得更好,可以构建一个依赖属性,您可以在XAML中将它附加到任何不希望被任何父变换变换的对象。此依赖项属性将接受父对象的转换,构建反向转换并将其应用于所附加的对象。

您还可以重新构造元素,以便不希望使用
画布进行缩放的元素实际上不是该
画布的子对象

<Canvas>
    <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" />
    </Canvas>
    <Button x:Name="dontScaleButton" Content="DON'T Scale Me" Canvas.Top="10" Canvas.Left="50" />
</Canvas>

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

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

不过,原始变换似乎仍然对按钮具有平移效果