feat: add close button.

This commit is contained in:
Zhang Dian
2025-04-25 00:53:08 +08:00
parent 3035a519ec
commit c5c17f6e5a
2 changed files with 15 additions and 3 deletions

View File

@@ -31,7 +31,7 @@
<Grid <Grid
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
RowDefinitions="*, Auto" RowDefinitions="*, Auto"
ColumnDefinitions="Auto, *"> ColumnDefinitions="Auto, *, Auto">
<!-- Icon Area --> <!-- Icon Area -->
<Panel <Panel
Grid.Column="0" Grid.Column="0"
@@ -63,10 +63,19 @@
Foreground="{DynamicResource PopConfirmContentForeground}" Foreground="{DynamicResource PopConfirmContentForeground}"
TextWrapping="Wrap" /> TextWrapping="Wrap" />
</StackPanel> </StackPanel>
<Button
Name="{x:Static u:PopConfirm.PART_CloseButton}"
Grid.Row="0"
Grid.Column="2"
HorizontalAlignment="Right"
VerticalAlignment="Top"
Theme="{DynamicResource OverlayCloseButton}"
Command="{TemplateBinding CancelCommand}"
CommandParameter="{TemplateBinding CancelCommandParameter}" />
<StackPanel <StackPanel
Grid.Row="1" Grid.Row="1"
Grid.Column="0" Grid.Column="0"
Grid.ColumnSpan="2" Grid.ColumnSpan="3"
Margin="0 25 0 0" Margin="0 25 0 0"
Spacing="8" Spacing="8"
Orientation="Horizontal" Orientation="Horizontal"

View File

@@ -17,6 +17,7 @@ namespace Ursa.Controls;
[PseudoClasses(PC_DropdownOpen, PC_Icon)] [PseudoClasses(PC_DropdownOpen, PC_Icon)]
public class PopConfirm : ContentControl public class PopConfirm : ContentControl
{ {
public const string PART_CloseButton = "PART_CloseButton";
public const string PART_ConfirmButton = "PART_ConfirmButton"; public const string PART_ConfirmButton = "PART_ConfirmButton";
public const string PART_CancelButton = "PART_CancelButton"; public const string PART_CancelButton = "PART_CancelButton";
public const string PART_Popup = "PART_Popup"; public const string PART_Popup = "PART_Popup";
@@ -70,6 +71,7 @@ public class PopConfirm : ContentControl
public static readonly StyledProperty<object?> IconProperty = Banner.IconProperty.AddOwner<PopConfirm>(); public static readonly StyledProperty<object?> IconProperty = Banner.IconProperty.AddOwner<PopConfirm>();
private Button? _closeButton;
private Button? _cancelButton; private Button? _cancelButton;
@@ -173,10 +175,11 @@ public class PopConfirm : ContentControl
protected override void OnApplyTemplate(TemplateAppliedEventArgs e) protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
{ {
base.OnApplyTemplate(e); base.OnApplyTemplate(e);
_closeButton = e.NameScope.Find<Button>(PART_CloseButton);
_confirmButton = e.NameScope.Find<Button>(PART_ConfirmButton); _confirmButton = e.NameScope.Find<Button>(PART_ConfirmButton);
_cancelButton = e.NameScope.Find<Button>(PART_CancelButton); _cancelButton = e.NameScope.Find<Button>(PART_CancelButton);
_popup = e.NameScope.Find<Popup>(PART_Popup); _popup = e.NameScope.Find<Popup>(PART_Popup);
Button.ClickEvent.AddHandler(OnButtonClicked, _confirmButton, _cancelButton); Button.ClickEvent.AddHandler(OnButtonClicked, _closeButton, _cancelButton, _confirmButton);
} }
private void OnButtonClicked(object sender, RoutedEventArgs e) private void OnButtonClicked(object sender, RoutedEventArgs e)