Я новичок ie в разработке WPF и C#. Я пытаюсь создать свой собственный класс кнопок на основе стандартной кнопки WPF.
public class _BaseButton : Button
{
public _BaseButton() : base()
{
}
}
Затем я пытаюсь поместить его в Window в XAML.
<Window x:Class="Sample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Sample"
Title="MainWindow" Height="350" Width="525">
<Grid >
<local:_BaseButton Height="30" Width="100" Content="I am crashing" VerticalAlignment="Center" PreviewMouseLeftButtonDown="simpleButtonDetailCancelButton_PreviewMouseLeftButtonDown"/>
</Grid>
</Window>
Как видите, в XAML Код я определяю обработчик события PreviewMouseLeftButtonDown. Это реализовано в коде окна позади.
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void simpleButtonDetailCancelButton_PreviewMouseLeftButtonDown(object sender, RoutedEventArgs e)
{
}
}
Сборка такого простого приложения завершается без ошибок. Когда я запускаю приложение, оно падает с двумя исключениями:
System. Windows .Markup.XamlParseException: не удалось создать PreviewMouseLeftButtonDown из текста simpleButtonDetailCancelButton_PreviewMouseLeftButtonDown. Строка № 7 и позиция 10.
ArgumentException: Невозможно связать с целевым методом, поскольку его подпись или прозрачность безопасности не совместимы с таковой для типа делегата.
Не могли бы вы объяснить мне что я делаю не так? Что-то не так с определением обработчика события PreviewMouseLeftButtonDown
или отсутствует в базовом классе, но я не знаю, что мне нужно сделать, чтобы это исправить.