Skip to content

Commit 1ceed3d

Browse files
committed
Fix CloseButton in AcrylicMessageBox
* Make CloseButton disabled when ButtonType is YesNo.
1 parent 3dab892 commit 1ceed3d

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

FluentWPF/AcrylicMessageBox.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ public class AcrylicMessageBox : AcrylicWindow
6464
private ButtonBase _noButton;
6565
private ButtonBase _cancelButton;
6666

67+
private ButtonBase _closeButton;
68+
6769
static AcrylicMessageBox()
6870
{
6971
DefaultStyleKeyProperty.OverrideMetadata(typeof(AcrylicMessageBox), new FrameworkPropertyMetadata(typeof(AcrylicMessageBox)));
@@ -194,6 +196,13 @@ public object CancelButtonContent
194196
#endregion
195197

196198

199+
public override void OnApplyTemplate()
200+
{
201+
base.OnApplyTemplate();
202+
// ウィンドウの「閉じる」ボタン要素を取得
203+
this._closeButton = GetTemplateChild("btnCloseButton") as ButtonBase;
204+
}
205+
197206
protected override void OnContentChanged(object oldContent, object newContent)
198207
{
199208
base.OnContentChanged(oldContent, newContent);
@@ -289,24 +298,28 @@ private void UpdateStates()
289298
this._yesButton.Visibility = Visibility.Collapsed;
290299
this._noButton.Visibility = Visibility.Collapsed;
291300
this._cancelButton.Visibility = Visibility.Collapsed;
301+
this._closeButton.IsEnabled = true;
292302
break;
293303
case MessageBoxButton.OKCancel:
294304
this._okButton.Visibility = Visibility.Visible;
295305
this._yesButton.Visibility = Visibility.Collapsed;
296306
this._noButton.Visibility = Visibility.Collapsed;
297307
this._cancelButton.Visibility = Visibility.Visible;
308+
this._closeButton.IsEnabled = true;
298309
break;
299310
case MessageBoxButton.YesNo:
300311
this._okButton.Visibility = Visibility.Collapsed;
301312
this._yesButton.Visibility = Visibility.Visible;
302313
this._noButton.Visibility = Visibility.Visible;
303314
this._cancelButton.Visibility = Visibility.Collapsed;
315+
this._closeButton.IsEnabled = false;
304316
break;
305317
case MessageBoxButton.YesNoCancel:
306318
this._okButton.Visibility = Visibility.Collapsed;
307319
this._yesButton.Visibility = Visibility.Visible;
308320
this._noButton.Visibility = Visibility.Visible;
309321
this._cancelButton.Visibility = Visibility.Visible;
322+
this._closeButton.IsEnabled = true;
310323
break;
311324
default:
312325
break;

0 commit comments

Comments
 (0)