Je souhaite que le curseur revienne à 0 lorsque l'utilisateur arrête de glisser.Le curseur doit retourner à
Jusqu'à présent, j'ai ceci:
<Window x:Class="CenteredSliderTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<!--Value="{Binding ZSpeed}"-->
<Slider DockPanel.Dock="Left"
x:Name="ZSlider"
Minimum="-100" Maximum="100"
SelectionStart="-20" SelectionEnd="20"
Orientation="Vertical"
TickFrequency="10"
TickPlacement="TopLeft"
AutoToolTipPlacement="TopLeft"
AutoToolTipPrecision="2"
LargeChange="10"
SmallChange="1"
IsDirectionReversed="True"
Focusable="False"
>
<Slider.Triggers>
<EventTrigger RoutedEvent="LostMouseCapture" SourceName="ZSlider">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="ZSlider"
Storyboard.TargetProperty="Value"
From="{Binding Value, ElementName=ZSlider}"
To="0.0"
Duration="0:0:1.5"
FillBehavior="Stop"
/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Slider.Triggers>
</Slider>
<TextBlock Text="{Binding ZSpeed}" />
</DockPanel>
</Window>
Cela fonctionne aussi longtemps que je ne lie pas la valeur du curseur à mon DependencyProperty ZSpeed.
Dès que je fais cela, le curseur revient à la valeur d'origine et à la deuxième tentative, le curseur ne peut plus être déplacé.
Alors que puis-je faire (de préférence en xaml) pour que l'animation modifie non seulement le curseur mais aussi la propriété ZSpeed?
EDIT
codedans MainWindow:
public partial class MainWindow : Window
{
public double ZSpeed
{
get { return (double)GetValue(ZSpeedProperty); }
set { SetValue(ZSpeedProperty, value); }
}
// Using a DependencyProperty as the backing store for ZSpeed. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ZSpeedProperty =
DependencyProperty.Register("ZSpeed", typeof(double), typeof(MainWindow), new UIPropertyMetadata(0.0));
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
Binding binding = new Binding("Value") { Source = ZSlider };
this.SetBinding(ZSpeedProperty, binding);
}
}
ne spécifie 'OneWay' sur l'aide à la liaison? – paul
Oui, mais ZSpeed n'est pas défini en conséquence. – MTR
Pourquoi ne liez-vous pas votre commentaire à 'ZSpeed'? Le curseur sera mis à jour automatiquement. Disclaimer: Je n'ai jamais travaillé avec des animations, donc je ne sais pas si ça va marcher. –