我有一个StackPanel,其中包含我想要调整大小的自定义用户控件列表。我希望用户能够拖动滑块并上下调整控件大小。
有没有办法将控件宽度绑定到滑块值?类似于:
<MyControl Width="{Binding Path=SizeSlider.SelectedValue}"/>
这可能吗?或者我应该只是遍历控件并在滑块值更改时手动设置大小?
答案 0 :(得分:3)
你应该可以使用
做到这一点<MyControl Width="{Binding ElementName=SizeSlider, Path=Value}"/>
仅设置Path
,您假设当前DataContext中存在名为SizeSlider
的内容。
我已经在代码中完成了一次这样的工作:
var binding = new Binding("Value") { Source = slider };
BindingOperations.SetBinding(b, WidthProperty, binding);
BindingOperations.SetBinding(b, HeightProperty, binding);
显然
<MyControl Width="{Binding Source=SizeSlider, Path=Value}"/>
可能是另一种方法。