Wpf 绑定到代码隐藏中的width属性

Wpf 绑定到代码隐藏中的width属性,wpf,binding,code-behind,Wpf,Binding,Code Behind,我有一种情况,我需要用一个按钮创建视图框。这方面的xaml如下:请注意viewbox的Width属性。宽度应根据滑块增加/减少(向右移动会增加宽度,向左移动会减少宽度)。正如下面列出的,我知道如何在xaml中实现它,并且它工作得很好。但我的要求是能够在代码隐藏中创建viewbox并为其指定属性 <WrapPanel x:Name="_wrpImageButtons" Grid.IsSharedSizeScope="True" ScrollViewer.CanCont

我有一种情况,我需要用一个按钮创建视图框。这方面的xaml如下:请注意viewbox的Width属性。宽度应根据滑块增加/减少(向右移动会增加宽度,向左移动会减少宽度)。正如下面列出的,我知道如何在xaml中实现它,并且它工作得很好。但我的要求是能够在代码隐藏中创建viewbox并为其指定属性

 <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>


谢谢。

这应该可以满足您的要求:

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.

您可以在代码隐藏中相对轻松地创建绑定:

var widthBinding = new Binding("Value") { ElementName = "ZoomSlider" };

_ScaleButton.SetBinding(FrameworkElement.WidthProperty, widthBinding);

哇,我从未见过有人使用
绑定操作。SetBinding
。我相信这没有什么区别,因为它会解析为该属性。@H.B.这就是我学习它的方式,以及实例方法在幕后使用的内容。:)