UserControlTests.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System.Linq;
  2. using Avalonia.Controls.Presenters;
  3. using Avalonia.Controls.Primitives;
  4. using Avalonia.Controls.Templates;
  5. using Avalonia.Styling;
  6. using Avalonia.UnitTests;
  7. using Xunit;
  8. namespace Avalonia.Controls.UnitTests
  9. {
  10. public class UserControlTests : ScopedTestBase
  11. {
  12. [Fact]
  13. public void Should_Be_Styled_As_UserControl()
  14. {
  15. var target = new UserControl();
  16. var root = new TestRoot
  17. {
  18. Styles =
  19. {
  20. new Style(x => x.OfType<UserControl>())
  21. {
  22. Setters =
  23. {
  24. new Setter(TemplatedControl.TemplateProperty, GetTemplate())
  25. }
  26. }
  27. },
  28. Child = target,
  29. };
  30. Assert.NotNull(target.Template);
  31. }
  32. private static FuncControlTemplate GetTemplate()
  33. {
  34. return new FuncControlTemplate<UserControl>((parent, scope) =>
  35. {
  36. return new Border
  37. {
  38. Background = new Media.SolidColorBrush(0xffffffff),
  39. Child = new ContentPresenter
  40. {
  41. Name = "PART_ContentPresenter",
  42. [~ContentPresenter.ContentProperty] = parent[~ContentControl.ContentProperty],
  43. }.RegisterInNameScope(scope)
  44. };
  45. });
  46. }
  47. }
  48. }