使用RenderTransform更改Xaml Slider值

时间:2012-07-30 00:48:54

标签: windows xaml user-interface windows-8 microsoft-metro

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

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

编辑: 这是对我要做的事情的更细致和彻底的解释:

基本上,我正在尝试创建一个代表预览窗口的UI控件 - 一个可伸缩,可翻译(沿X轴)的栏,允许您选择要预览的相应视频的某些部分。 / p>

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

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

1 个答案:

答案 0 :(得分: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>