Поиск…


параметры

параметр подробность
Значение (float) Свойство, связанное с этим свойством Dependency, будет обновляться всякий раз, когда пользователь прекратит перетаскивание ползунка

замечания

  • Обязательно обратитесь к сборке System.Windows.Interactivity , чтобы XAML Parser распознал объявление xmlns: i .
  • Обратите внимание, что инструкция xmlns: b соответствует пространству имен, в котором реализована реализация поведения
  • Пример предполагает знание знаний об обязательных выражениях и XAML.

Реализация поведения

using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Interactivity;

namespace MyBehaviorAssembly
{

public class SliderDragEndValueBehavior : Behavior<Slider>
{

    public static readonly DependencyProperty ValueProperty = DependencyProperty.Register(
        "Value", typeof (float), typeof (SliderDragEndValueBehavior), new PropertyMetadata(default(float)));

    public float Value
    {
        get { return (float) GetValue(ValueProperty); }
        set { SetValue(ValueProperty, value); }
    }

    protected override void OnAttached()
    {
        RoutedEventHandler handler = AssociatedObject_DragCompleted;
        AssociatedObject.AddHandler(Thumb.DragCompletedEvent, handler);
    }

    private void AssociatedObject_DragCompleted(object sender, RoutedEventArgs e)
    {
        Value = (float) AssociatedObject.Value;
    }

    protected override void OnDetaching()
    {
        RoutedEventHandler handler = AssociatedObject_DragCompleted;
        AssociatedObject.RemoveHandler(Thumb.DragCompletedEvent, handler);
    }
}
}

Использование XAML

<UserControl x:Class="Example.View"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
                
         xmlns:b="MyBehaviorAssembly;assembly=MyBehaviorAssembly"
                      
         mc:Ignorable="d" 
         d:DesignHeight="200" d:DesignWidth="200"
               
         >
           <Slider>
            <i:Interaction.Behaviors>
                <b:SliderDragEndValueBehavior
                      
                        Value="{Binding Value, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}"
                        
                        />
            </i:Interaction.Behaviors>
          </Slider>

</UserControl>


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow