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

Loading…
Cancel
Save