如果用户握住滑块的拇指,则在更改滑块值时不会更改滑块滑块

时间:2013-01-21 19:18:32

标签: wpf slider mouse

我有一个名为ImageTemplate的自定义用户控件。该控件包含图像,并具有允许用户对图像显示执行操作的功能。触发特定事件时,图像将切换,ImageTemplate(显示新图像)的设置将重置为默认值。

ImageTemplate的一个功能是允许用户放大和缩小,当图像更改时,必须将缩放级别设置回默认值(100%)。

用户可以通过三种方式进行缩放:

  1. 按住控制按钮并使用鼠标滚轮放大和缩小

  2. 使用ComboBox

  3. 选择20%到200%之间的缩放级别
  4. 使用滑块控件选择缩放级别

  5. 滑块控件出现问题。

    对于ImageTemplate,我实现了一个名为Zoom的依赖属性,我处理了这个属性的DependencyPropertyChangedEvent,这样我就可以调用执行缩放缩放的逻辑。

    滑块控件的值绑定到Zoom属性,如下所示:

    <Slider x:Name="sldZoom"
            Minimum="{Binding MinZoom, Source={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" 
            Maximum="2" 
            TickFrequency="0.2"
            IsSnapToTickEnabled="True"
            SmallChange=".2" VerticalAlignment="Center" Width="200">
            <Slider.Value>
                <Binding Mode="TwoWay" Path="Zoom"
                          RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}"
                          UpdateSourceTrigger="PropertyChanged"
                          ValidatesOnDataErrors="True"
                          ValidatesOnExceptions="True">
            </Binding>
        </Slider.Value>
    </Slider>
    

    现在,当用户拖动滑块时,控件会缩放到适当的级别。 此外,当用户使用鼠标滚动按钮或ComboBox进行缩放时,滑块会更改为正确的位置。

    当我拖动滑块控件的拇指并且图像发生变化时,会出现问题。

    我希望拇指移回“100%”位置,因为它是图像的默认缩放;但是它没有移动到那个位置。

    如何解决这个问题?

    谢谢,

    -Frinny

0 个答案:

没有答案