WPF 控件的xaml中的定义ControlTemplate内容,在该控件,Remove与Add之后,该控件的ControlTemplate重置的问题

Jave.Lin 2013-11-21 04:04:03
如题“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);
}
}
}


...全文
149 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小猪八Q 2013-11-21
  • 打赏
  • 举报
回复
Mark一下,希望楼主解决以后,可以给个原因和答案,我暂时还没有研究出来什么问题
Jave.Lin 2013-11-21
  • 打赏
  • 举报
回复
在Stackoverflow 终于解决了。。。 想要结果的,自己去搜索。。。 CSDN太冷清了。。。
Jave.Lin 2013-11-21
  • 打赏
  • 举报
回复
看来,弄两个版是正确选择。 CSDN都没人的; 要去stackoverflow问下

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧