我有一个C#/ .Net WPF桌面应用程序。 定义了一系列WPF控件,我想在运行时动态更改边距。
如何将控件的边距绑定到后面代码中的属性?
考虑以下控件:
<TextBox Name="Foo" Text="Foo Text" Margin="0,10,0,10">
我在主窗口中定义了以下内容:
public double TopMargin {get; set;}
public double BottomMargin {get; set;}
我希望能够动态更改边距,这样如果我更改运行时C#代码中的边距,新边距值就会反映在UI中。
如果更容易,我会考虑使用:
public Thickness FooMargin{get; set;}
实现这一目标最干净/最好的方式是什么?
由于
答案 0 :(得分:2)
最好的方法是按照你的建议使用:
public Thickness TextBoxMargin { get; set; }
然后您可以使用厚度构造函数中所需的左,上,右,下(边距)值创建边距
TextBoxMargin = new Thickness(5,5,5,5);
如果您使用的是MVVM,则可以像查看模型中的常规属性一样进行绑定:
<TextBox Name="Foo" Text="Foo Text" Margin="{Binding TextBoxMargin}">
如果您想在代码中执行此操作,那么在您的用户控件中只需指定:
Foo.Margin = TextBoxMargin;