WPF 控件的xaml中的定义ControlTemplate内容,在该控件,Remove与Add之后,该控件的ControlTemplate重置的问题
如题“WPF 控件的xaml中的定义ControlTemplate内容,在该控件,Remove与Add之后,该控件的ControlTemplate重置的问题”我对WPF不是很熟悉,才刚接触;
我目前写了一个比较多的测试项目;
做到一半测试时,发现有问题:
续我这个贴子,没人回答,我才继续发问题的,唉:
WPF *.xaml中的ControlTemplate如何写成过程式代码(*.cs)
我的测试项目:
MyWpfTest.zip
问题是这样的描述:
我把一个自定义的控件,添加到:Canvas,再从Canvas删除中,再添加回Canvas,发现我之前对该控件设置的文本内容。。。子控件显示样子,都会还原到,*.xaml定义的ControlTemplate的样子,像是被重置了一样,不知道为啥回这样;
源码,与图文描述:
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);
}
}
}
--------------------编程问答-------------------- 看来,弄两个版是正确选择。
CSDN都没人的;
要去stackoverflow问下 --------------------编程问答-------------------- 在Stackoverflow 终于解决了。。。
想要结果的,自己去搜索。。。
CSDN太冷清了。。。 --------------------编程问答-------------------- Mark一下,希望楼主解决以后,可以给个原因和答案,我暂时还没有研究出来什么问题
补充:.NET技术 , C#