错误事件“已加载”

时间:2014-07-21 09:29:50

标签: c# xaml unity3d

我不明白这个错误发生了,虽然我已经宣布了这个方法。 看看这段代码和错误。

  

' WpfApplication5.MonoBehaviour'不包含的定义   ' event_rotate'没有扩展方法' event_rotate'接受一个   可以找到第一个类型的参数(你是否错过了使用   指令或程序集引用?)

代码c#1:

private void event_rotate(object sender, RoutedEventArgs e)
{
    MessageBox.Show("asdasada");
}

代码c#2:

using UnityEngine;
using System.Collections;
namespace WpfApplication5
{
    /// <summary>
    /// Interaction logic for Window2.xaml
    /// </summary>
    public partial class Window2 : MonoBehaviour

代码xaml:

<Window
    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" mc:Ignorable="d" x:Class="WpfApplication5.MonoBehaviour"
    Title="Window2" Height="300" Width="300" Loaded="event_rotate">

2 个答案:

答案 0 :(得分:0)

x:Class属性的值不正确。 x:Class属性指定应与XAML代码合并的代码隐藏类。您在XAML中指定了MonoBehavior类。应该是Window2。 Window2确实包含事件声明&amp;这不需要公开。

您可以从错误消息中判断出来。在合并文件之后,代码将event_rotate方法放在代码隐藏中。此方法在Window2中声明,而不是在指定的MonoBehavior中声明,如x:Class sais。

答案 1 :(得分:0)

Unity MonoBehaviour类是WPF Window基类,因此不适合用作Window2类的基类。然而,它可能是该类的属性(假设您可以实例化它)。

C#代码:

using UnityEngine;
using System.Collections;
namespace WpfApplication5
{
    public partial class Window2 : Window
    {
        // You must implement your own MyScriptClass that has MonoBehaviour as it's
        // base class and provide an appropriate constructor to use here, in the
        // Window2 constructor or some other appropriate location.
        private MonoBehaviour _monoBehaviour = new MyScriptClass();

        // Default constructor
        public Window2()
        {
            // Set up your _monoBehaviour here

            // Initialise the WPF Window GUI object
            InitializeComponent();
        }

        // Called by the WPF FrameworkElement.Loaded Event
        public void event_rotate(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("asdasada");
        }
    }
}

XAML代码:

<Window x:Class="WpfApplication5.Window2"
        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"
        mc:Ignorable="d"
        Title="Window2"
        Height="300" Width="300"
        Loaded="event_rotate"
        >

我不熟悉Unity框架,也不知道如何将其与XAML窗口的GUI实现相关联。我假设您希望将approriate UserControl容器类的数据绑定到公开私有_monoBehaviour实现的公共属性。