WPF-平移变换更改Y轴

2ul0zpep  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(177)

我正在做一个图像绑定与滑块和唯一的事情,我想做的是它的移动Y轴向下到向上,但在这一刻,我移动轴向上到向下。我可以做什么来反转Angular y的移动?
这是代码:

<Image Margin="400,0,200,37" Source="/img/santa_claus.png" Stretch="Uniform" VerticalAlignment="Bottom" Width="200" Height="195">
            <Image.RenderTransform>
                <TranslateTransform  Y="{Binding Value, ElementName=slider}" x:Name="transform"/>
            </Image.RenderTransform>
        </Image>
        
        <Slider Minimum="1" Maximum="100" x:Name="slider" Height="40" RenderTransformOrigin="0.5,0.5" Margin="226,392,200,12"  >
            <Slider.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform AngleY="-0.584"/>
                    <RotateTransform/>
                    <TranslateTransform Y="-1.482"/>
                </TransformGroup>
            </Slider.RenderTransform>
        </Slider>

我尝试了不同的属性,并将滑块最小值更改为100,最大值更改为1,但这会使滑块的效果无效

8xiog9wr

8xiog9wr1#

可以通过两个“镜像”ScaleTransforms(ScaleY="-1")反转平移方向。

<Image.RenderTransform>
    <TransformGroup>
        <ScaleTransform ScaleY="-1"/>
        <TranslateTransform Y="{Binding Value, ElementName=slider}"/>
        <ScaleTransform ScaleY="-1"/>
    </TransformGroup>
</Image.RenderTransform>

一般来说,不要使用边距进行布局。将两个元素放在网格的两行中:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Image Grid.Row="0" Source="/img/santa_claus.png"
           VerticalAlignment="Bottom" Stretch="Uniform" Width="200" Height="195">
        <Image.RenderTransform>
            <TransformGroup>
                <ScaleTransform ScaleY="-1"/>
                <TranslateTransform Y="{Binding Value, ElementName=slider}"/>
                <ScaleTransform ScaleY="-1"/>
            </TransformGroup>
        </Image.RenderTransform>
    </Image>

    <Slider Grid.Row="1" x:Name="slider"
            Minimum="0" Maximum="100" Width="200" Margin="10"/>
</Grid>

相关问题