我有一个名为ImageTemplate的自定义用户控件。该控件包含图像,并具有允许用户对图像显示执行操作的功能。触发特定事件时,图像将切换,ImageTemplate(显示新图像)的设置将重置为默认值。
ImageTemplate的一个功能是允许用户放大和缩小,当图像更改时,必须将缩放级别设置回默认值(100%)。
用户可以通过三种方式进行缩放:
按住控制按钮并使用鼠标滚轮放大和缩小
使用ComboBox
使用滑块控件选择缩放级别
滑块控件出现问题。
对于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