1,wpf最好使用通用模板,使用StaticResource引用样式

2,释放事件。每个UserControl,Page,Window都实现一个接口

    interface IUIElement : IDisposable
   {
       
/// <summary>
       
/// 注册事件
       
/// </summary>
       void EventsRegistion();

       
/// <summary>
       
/// 解除事件注册
       
/// </summary>
       void EventDeregistration();
   }

来注册事件和解除事件

3,定时回收垃圾

DispatcherTimer GCTimer = new DispatcherTimer();
public MainWindow()
{
   InitializeComponent();
   
this.GCTimer.Interval = TimeSpan.FromMinutes(10); //垃圾释放定时器 我定为每十分钟释放一次,大家可根据需要修改
  this.GCTimer.start();

   
this.EventsRegistion();    // 注册事件
}

public void EventsRegistion()
{
   
this.GCTimer.Tick += new EventHandler(OnGarbageCollection);
}

public void EventDeregistration()
{
   
this.GCTimer.Tick -= new EventHandler(OnGarbageCollection);
}

void OnGarbageCollection(object sender, EventArgs e)
{
   GC.Collect();
   GC.WaitForPendingFinalizers();
   GC.Collect();
}