Browse Source

Use template part name constants in CaptionButtons

pull/11361/head
robloo 3 years ago
parent
commit
4edb8a5fec
  1. 21
      src/Avalonia.Controls/Chrome/CaptionButtons.cs

21
src/Avalonia.Controls/Chrome/CaptionButtons.cs

@ -8,13 +8,18 @@ namespace Avalonia.Controls.Chrome
/// <summary> /// <summary>
/// Draws window minimize / maximize / close buttons in a <see cref="TitleBar"/> when managed client decorations are enabled. /// Draws window minimize / maximize / close buttons in a <see cref="TitleBar"/> when managed client decorations are enabled.
/// </summary> /// </summary>
[TemplatePart("PART_CloseButton", typeof(Button))] [TemplatePart(PART_CloseButton, typeof(Button))]
[TemplatePart("PART_RestoreButton", typeof(Button))] [TemplatePart(PART_RestoreButton, typeof(Button))]
[TemplatePart("PART_MinimizeButton", typeof(Button))] [TemplatePart(PART_MinimizeButton, typeof(Button))]
[TemplatePart("PART_FullScreenButton", typeof(Button))] [TemplatePart(PART_FullScreenButton, typeof(Button))]
[PseudoClasses(":minimized", ":normal", ":maximized", ":fullscreen")] [PseudoClasses(":minimized", ":normal", ":maximized", ":fullscreen")]
public class CaptionButtons : TemplatedControl public class CaptionButtons : TemplatedControl
{ {
private const string PART_CloseButton = "PART_CloseButton";
private const string PART_RestoreButton = "PART_RestoreButton";
private const string PART_MinimizeButton = "PART_MinimizeButton";
private const string PART_FullScreenButton = "PART_FullScreenButton";
private Button? _restoreButton; private Button? _restoreButton;
private IDisposable? _disposables; private IDisposable? _disposables;
@ -95,10 +100,10 @@ namespace Avalonia.Controls.Chrome
{ {
base.OnApplyTemplate(e); base.OnApplyTemplate(e);
var closeButton = e.NameScope.Get<Button>("PART_CloseButton"); var closeButton = e.NameScope.Get<Button>(PART_CloseButton);
var restoreButton = e.NameScope.Get<Button>("PART_RestoreButton"); var restoreButton = e.NameScope.Get<Button>(PART_RestoreButton);
var minimizeButton = e.NameScope.Get<Button>("PART_MinimizeButton"); var minimizeButton = e.NameScope.Get<Button>(PART_MinimizeButton);
var fullScreenButton = e.NameScope.Get<Button>("PART_FullScreenButton"); var fullScreenButton = e.NameScope.Get<Button>(PART_FullScreenButton);
closeButton.Click += (sender, e) => OnClose(); closeButton.Click += (sender, e) => OnClose();
restoreButton.Click += (sender, e) => OnRestore(); restoreButton.Click += (sender, e) => OnRestore();

Loading…
Cancel
Save