2009-04-22 105 views
1

我有一个StackPanel,其中包含我想调整大小的自定义用户控件列表。我希望用户能够拖动滑块并上下调整控件大小。WPF绑定控件大小

有没有办法将控制宽度绑定到滑块值?类似于:

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

这可能吗?或者,我应该迭代通过控件并手动设置大小,每当滑块值更改?

回答

3

您应该能够通过使用

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

做到这一点就好了仅通过设置Path你假设名为SizeSlider东西会在当前的DataContext存在。

我在代码中完成这个曾经和它的工作:

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

因此很明显,

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

可能是另一种方式来做到这一点。