是否有完全在运行时创建WPF控件的好教程?
由于
答案 0 :(得分:5)
我知道没有这样的教程,部分原因是如果你已经掌握了控件的XAML定义,这是非常简单的。
XAML代码与相应的C#代码之间的对应关系很简单。
示例:
<Button Height="80" Width="150">Test</Button>
进入
Button button = new Button() { Height = 80, Width = 150, Content = "Test" };
parentControl.Add(button);
你应该知道的事情:
Content
(如Button
的情况),也可以是一组子项(如Grid
的情况)。在XAML中,有时会隐式应用特殊值转换器;在C#代码中,你必须自己做。例如:
<Button Margin="1, 2"/>
变成
Button button = new Button() { Margin = new Thickness(1, 2, 1, 2) };
每个UI元素只能有一个父元素。也就是说,您不能将同一元素作为孩子添加到两个不同的父母身上。
绑定以一种非常特殊的方式定义:
<Label MaxWidth={Binding ActualWidth, Source={Binding ElementName=Container}}>
进入
Label label = new Label();
label.SetBinding(
Label.MaxWidthProperty,
new Binding("ActualWidth") { Source = Container }
);
(最好通过实际参考而不是名称来引用Container
。
附加属性的语法再次不简单:
<Label Grid.Column="1"/>
变成
Label label = new Label();
Grid.SetColumn(label, 1);
请注意,对于每个构造/属性,您可以在MSDN中查找在XAML和C#中表达它的确切方式,通常直接在描述您正在寻找的概念的文章中。