Файл MainWindow.xaml
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<StackPanel HorizontalAlignment="Stretch">
<Button Command="{Binding CommandClickMyButton1}"
x:Name="MyButton1"
Content="Hello"
Margin="0 100 0 0"
HorizontalAlignment="Center"/>
</StackPanel>
</Window>
Файл MainWindow.xaml.cs
using System.Windows;
using System.Windows.Input;
namespace WpfApp1
{
class ClickCommand : ICommand
{
public event EventHandler CanExecuteChanged;
private Action<object> _callback;
public ClickCommand(Action<object> callback)
{
_callback = callback;
}
public virtual void Execute(object parameter) { _callback(parameter); }
public virtual bool CanExecute(object parameter) { return true; }
}
public partial class MainWindow : Window
{
public ICommand CommandClickMyButton1 => new ClickCommand(ClickMyButton1);
public MainWindow()
{
InitializeComponent();
// for binding
this.DataContext = this;
}
public void ClickMyButton1(object parameter)
{
Point mousePosition = Mouse.GetPosition(MyButton1);
Point mousePositionScreen = MyButton1.PointToScreen(mousePosition);
Point mousePosition2 = MyButton1.PointFromScreen(mousePositionScreen);
}
}
}