110,533
社区成员
发帖
与我相关
我的任务
分享
using System.Windows;
using System.Windows.Input;
using DragerTestingProject.BaseControl;
namespace MyWpfTest
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.l1.PreviewMouseDown += new MouseButtonEventHandler(l1_PreviewMouseDown);
this.l2.PreviewMouseDown += new MouseButtonEventHandler(l1_PreviewMouseDown);
this.l3.PreviewMouseDown += new MouseButtonEventHandler(l1_PreviewMouseDown);
l1.LayerName = "this is first layer,这是第一个图层";
l2.LayerName = "this is second layer,这是第二个图层";
l3.LayerName = "this is third layer,这是第三个图层";
}
void l1_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
var l = sender as DesignerLayer;
// chinese:
// 为啥这里对从Remove之后,
// 再Add或是Insert回去,之后:l(DesignerLayer)的.Template的内容会重置,
// 而且,多点几次,这个Template甚至会==null
// 这是什么原因呢?
// 我的这个项目内容有点多,我只是把其中的一个关键问题,抽到了这个测试项目里做为测试。
// enlgish:
// the l(DesignerLayer) obj Template will reset,
// when i remove it from parent(Canvas),
// and then re-add or re-insert to the parent(Canvas);
// Event Template will be null, where run this code(Remove and re-add or re-insert) few times.
// i don't know why.
c1.Children.Remove(l);
//c1.Children.Insert(0, l);
c1.Children.Add(l);
}
}
}