2009-04-22 10 views
1

J'ai un StackPanel avec une liste de contrôles utilisateur personnalisés que je voudrais redimensionner. Je voudrais que l'utilisateur soit capable de faire glisser un curseur et d'ajuster la taille du contrôle de haut en bas.Taille de contrôle de liaison WPF

Existe-t-il un moyen de lier la largeur de contrôle à une valeur de curseur? Quelque chose de similaire à:

<MyControl Width="{Binding Path=SizeSlider.SelectedValue}"/> 

Est-ce possible? Ou devrais-je simplement parcourir les contrôles et définir manuellement la taille chaque fois que la valeur du curseur change?

Répondre

3

Vous devriez être en mesure de le faire très bien en utilisant

<MyControl Width="{Binding ElementName=SizeSlider, Path=Value}"/> 

En fixant seulement Path vous supposez que quelque chose nommé SizeSlider existerait dans le DataContext actuel.

Je l'ai fait dans le code une fois et cela a fonctionné:

var binding = new Binding("Value") { Source = slider }; 
BindingOperations.SetBinding(b, WidthProperty, binding); 
BindingOperations.SetBinding(b, HeightProperty, binding); 

donc apparemment

<MyControl Width="{Binding Source=SizeSlider, Path=Value}"/> 

peut-être une autre façon de le faire.