在代码后台绑定宽度属性

6

我有一个情况,需要创建一个带有一个按钮的视图框(View box)。以下是此功能的XAML代码,请注意View box的Width属性。根据滑动条的移动(向右移动增加宽度,向左移动减小宽度),Width应该增加/减少。如下所示,我知道如何在XAML中实现它并且可以正常工作。但我的要求是能够在代码后台创建View box并分配它的属性。

 <WrapPanel x:Name="_wrpImageButtons" Grid.IsSharedSizeScope="True"
           ScrollViewer.CanContentScroll="True" d:LayoutOverrides="Height" 
           Margin="5">
    <Viewbox x:Name="_ScaleButton" 
             Width="{Binding Value, ElementName=ZoomSlider}" Stretch="Fill">
         <CustomButton:_uscVCARSImagesButton x:Name="_btnImage1"/>
    </Viewbox>
 </WrapPanel>

感谢您的选择。
2个回答

8
这应该可以满足你的需求:
Viewbox x = new Viewbox();
Binding bnd = new Binding("Value") { ElementName = "ZoomSlider"};
BindingOperations.SetBinding(x, Viewbox.WidthProperty, bnd);
// ... Code to insert the Viewbox into the WrapPanel etc.

哇,我从未见过有人使用 BindingOperations.SetBinding - H.B.
我相信这没有任何区别,因为它最终都会解析到那个属性。 - Botz3000
@H.B. 这就是我学习的方式,也是实例方法在底层使用的方式 :) - Botz3000

4
您可以在代码后台相对容易地创建绑定:
var widthBinding = new Binding("Value") { ElementName = "ZoomSlider" };

_ScaleButton.SetBinding(FrameworkElement.WidthProperty, widthBinding);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接