0

我正在制作基于几个滑块的 Metro Xaml 控件。本质上,在 ManipulationDelta 事件中——特别是沿 X 轴的平移——一个滑块拇指,我想将另一个滑块拇指平移相同的量。我遇到的问题是,使用 RenderTransform 转换另一个拇指并不会改变其滑块的值,而是从表面上改变拇指的位置。

是否有更简单的解决方案来让滑块的值与拇指位置匹配,而不是使用几个计算将拇指位置投影到滑块值中?

编辑:这是对我正在尝试做的事情的更仔细和彻底的解释:

本质上,我正在尝试制作一个代表预览窗口的 UI 控件——一个可拉伸、可翻译(沿 X 轴)的栏,允许您选择要预览的相应视频的某些部分。

在幕后,我使用两个滑块来表示预览窗口的左右拇指,以及一个连接两个滑块拇指的矩形,允许您同时平移矩形和两个拇指。两个滑块的拇指允许您拉伸窗口。

拉伸是通过增加矩形的宽度来完成的。通过矩形的平移是通过使用 TranslateTransform 对象完成的。

4

1 回答 1

1

常规Slider控件不需要处理任何操作或应用渲染转换。您只需将一个滑块的值绑定到另一个滑块的值,它们就会同步移动。

<StackPanel
    VerticalAlignment="Center"
    HorizontalAlignment="Center">
    <Slider
        Width="300"
        Minimum="0"
        Maximum="10"
        StepFrequency="0.1"
        Value="{Binding Value, ElementName=slider2, Mode=TwoWay}" />
    <Slider
        x:Name="slider2"
        Width="300"
        Minimum="0"
        Maximum="10"
        StepFrequency="0.1" />
</StackPanel>
于 2012-07-30T02:59:21.670 回答