【问题标题】:C# WPF XAML Mouse(Down) events not working anymore as of .NET 5(C#9)从 .NET 5(C#9) 开始,C# WPF XAML Mouse(Down) 事件不再起作用
【发布时间】:2021-07-19 23:46:12
【问题描述】:

Screen shot of the issue I'm running into after going to .NET 5 (C# 9)

我现在正试图弄清楚他们希望我们如何实现这个简单的代码。

它说这是一个错误,但它仍然构建项目。虽然,这确实会阻止设计人员从 xaml 构建视图,因此无法正确编辑 xaml,也会阻止功能,在这种情况下尝试使用 mouse_down 事件拖动窗口。

XAML:

<Window x:Class="WPFProject.Window1"
        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:WPFProject"
        mc:Ignorable="d"
        Title="Window1" Height="450" Width="800">
    
    <Border MouseDown="CodeBehind_DragFunction">
        <TextBlock Text="Hello World" Foreground="Black"/>
    </Border>
</Window>
C# Code-behind
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        void CodeBehind_DragFunction(object sender_, MouseButtonEventArgs e_)
        {
            DragMove();
        }
    }

这在以前的版本中有效..

【问题讨论】:

  • 这个问题会阻止构建还是只是设计者警告?
  • 首先,请始终以文本形式发布错误消息。其次,请始终包含可靠地重现问题的minimal reproducible example。请注意,C# 中的 all 对象继承 System.Object,因此错误消息对我来说似乎是虚假的。但是如果没有minimal reproducible example,就无法理解您是如何触发错误的。
  • 试试MouseLeftButtonDown?
  • 这可能是一个设计错误。按照here 说明的步骤操作,看看是否有帮助。
  • 鉴于您发布的代码无法重现。我怀疑你有一个不小心插入某个地方的虚假字符,要么不可见,要么看起来像正确的字符,但字符点不同。无论如何,很明显您没有发布与您实际遇到问题的代码完全相同的代码。

标签: wpf xaml code-behind .net-5 c#-9.0


【解决方案1】:

@Pharaz Fadaei 发布的建议答案 这是一个 IDE 错误,已按照本文中概述的这些步骤进行修复:The event 'foo' is not a RoutedEvent

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多