// -----------------------------------------------------------------------
//
// Copyright 2014 MIT Licence. See licence.md for more information.
//
// -----------------------------------------------------------------------
namespace Perspex.Controls
{
using System;
using Perspex.Styling;
public class ControlTemplate
{
private Func build;
public ControlTemplate(Func build)
{
Contract.Requires(build != null);
this.build = build;
}
public static ControlTemplate Create(Func build)
where TControl : ITemplatedControl
{
Contract.Requires(build != null);
return new ControlTemplate(c => build((TControl)c));
}
public Control Build(ITemplatedControl templatedParent)
{
Contract.Requires(templatedParent != null);
var root = this.build(templatedParent);
return root;
}
}
}