我正致力于在C#中创建StackPanels
。
尝试在C#中复制的xaml是
<StackPanel Grid.Column="0" Background="BlanchedAlmond" DragOver="panel_DragOver" Drop="panel_Drop" AllowDrop="True" MinWidth="150">
目前我所拥有的是:
StackPanel myPanel = new StackPanel
{
MinWidth = 150,
MinHeight = 150,
AllowDrop = true
};
MainStack.Children.Add(myPanel);
目前唯一有效的问题是StackPanel
没有DragOver
和Drop
的属性,如何将其添加到C#代码中?
答案 0 :(得分:1)
是的,确实有。
var sp = new StackPanel();
sp.Drop += (o, arg) => { };
您无法在对象创建体内分配事件。
答案 1 :(得分:1)
这些不是属性,而是可以使用+=
语法将处理程序连接起来的事件:
StackPanel myPanel = new StackPanel
{
MinWidth = 150,
MinHeight = 150,
AllowDrop = true
};
myPanel.DragOver += panel_DragOver;
myPanel.Drop += panel_Drop;
MainStack.Children.Add(myPanel);
当然,处理程序panel_DragOver
和panel_Drop
仍然必须像以前一样定义。