我尝试创建一个非常简单的应用程序,其中包含一个画布,当单击画布时,该画布将注册一个PointerPressed事件,但我收到以下错误:
System.Xaml.XamlException:'无法为类型为Avalonia的属性PointerPressed找到合适的设置程序或加法器。参数System. Private的Input. InputElement。CoreLib:System. String,可用的设置程序参数列表为:"系统.事件处理程序" 1 Avalonia. Input. PointerPressedEventArgs,Avalonia. Input,版本= 0.10.18.0,区域性=非特定区域性,公钥标记= c8d484a7012f9a8b第8行位置11。"行号" 8 "和行位置" 11 "。"
XAML:
<Window xmlns="https://github.com/avaloniaui"
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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="TestCanvas.MainWindow"
Title="TestCanvas">
<Canvas PointerPressed="AddShape"/>
</Window>
代码:
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Interactivity;
namespace TestCanvas
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public void AddShape(object sender, PointerPressedEventArgs e)
{
}
}
}
我也尝试过类似的按钮点击事件,但得到了同样的错误。是我做错了还是项目中的某些设置不正确导致了问题?我只是使用了Avalonia应用程序模板。
1条答案
按热度按时间9vw9lbht1#
此错误是由于在XAML中绑定事件处理程序时,必须使用{x:EventHandler}语法,而不是直接引用事件处理程序名称。
因此,应更新XAML中的PointerPressed属性:
这将告诉XAML在为该元素激发PointerPressed事件时调用AddShape方法。