Browse Source

Make UserControl a name scope.

Closes #322.
pull/327/head
Steven Kirk 10 years ago
parent
commit
bb2e44394b
  1. 36
      src/Perspex.Controls/UserControl.cs

36
src/Perspex.Controls/UserControl.cs

@ -6,8 +6,42 @@ using Perspex.Styling;
namespace Perspex.Controls
{
public class UserControl : ContentControl, IStyleable
public class UserControl : ContentControl, IStyleable, INameScope
{
private NameScope _nameScope = new NameScope();
/// <inheritdoc/>
event EventHandler<NameScopeEventArgs> INameScope.Registered
{
add { _nameScope.Registered += value; }
remove { _nameScope.Registered -= value; }
}
/// <inheritdoc/>
event EventHandler<NameScopeEventArgs> INameScope.Unregistered
{
add { _nameScope.Unregistered += value; }
remove { _nameScope.Unregistered -= value; }
}
Type IStyleable.StyleKey => typeof(ContentControl);
/// <inheritdoc/>
void INameScope.Register(string name, object element)
{
_nameScope.Register(name, element);
}
/// <inheritdoc/>
object INameScope.Find(string name)
{
return _nameScope.Find(name);
}
/// <inheritdoc/>
void INameScope.Unregister(string name)
{
_nameScope.Unregister(name);
}
}
}

Loading…
Cancel
Save