diff --git a/demo/Ursa.Demo/Pages/PopConfirmDemo.axaml b/demo/Ursa.Demo/Pages/PopConfirmDemo.axaml
index aafb535..acb5216 100644
--- a/demo/Ursa.Demo/Pages/PopConfirmDemo.axaml
+++ b/demo/Ursa.Demo/Pages/PopConfirmDemo.axaml
@@ -10,9 +10,8 @@
x:Class="Ursa.Demo.Pages.PopConfirmDemo">
+ ConfirmCommand="{Binding ConfirmCommand}"
+ CancelCommand="{Binding Path=CancelCommand}" >
diff --git a/src/Ursa.Themes.Semi/Controls/PopConfirm.axaml b/src/Ursa.Themes.Semi/Controls/PopConfirm.axaml
index a41ce95..7740c6c 100644
--- a/src/Ursa.Themes.Semi/Controls/PopConfirm.axaml
+++ b/src/Ursa.Themes.Semi/Controls/PopConfirm.axaml
@@ -6,27 +6,38 @@
-
+
+ Name="{x:Static u:PopConfirm.PART_Popup}"
+ Placement="{TemplateBinding Placement}" >
-
-
-
-
+
+
+
+
+
diff --git a/src/Ursa/Controls/PopConfirm/PopConfirm.cs b/src/Ursa/Controls/PopConfirm/PopConfirm.cs
index 20aa82c..a4d13ef 100644
--- a/src/Ursa/Controls/PopConfirm/PopConfirm.cs
+++ b/src/Ursa/Controls/PopConfirm/PopConfirm.cs
@@ -1,142 +1,163 @@
using System.ComponentModel;
-using System.Diagnostics;
using System.Windows.Input;
using Avalonia;
using Avalonia.Controls;
+using Avalonia.Controls.Metadata;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
+using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.LogicalTree;
using Irihi.Avalonia.Shared.Helpers;
namespace Ursa.Controls;
-public class PopConfirm: ContentControl
+[PseudoClasses(PC_DropdownOpen)]
+public class PopConfirm : ContentControl
{
public const string PART_ConfirmButton = "PART_ConfirmButton";
public const string PART_CancelButton = "PART_CancelButton";
public const string PART_Popup = "PART_Popup";
-
- private Button? _confirmButton;
- private Button? _cancelButton;
- private Popup? _popup;
-
+ public const string PC_DropdownOpen = ":dropdownopen";
+
public static readonly StyledProperty