ero*_*las 2 c# directx windows-runtime c++-cx
我正在学习DirectX,但我不太了解C++所以我决定使用SharpDX.但我在C++中坚持使用TypedEventHandler中的函数地址,但是我不知道如何在C#中编写它?有人可以帮忙吗?
ref class App sealed : public IFrameworkView
{
public:
virtual void Initialize(CoreApplicationView^ AppView)
{
AppView->Activated += ref new TypedEventHandler
<CoreApplicationView^, IActivatedEventArgs^>(this, &App::OnActivated);
}
virtual void SetWindow(CoreWindow^ Window) {}
virtual void Load(String^ EntryPoint) {}
virtual void Run() {}
virtual void Uninitialize() {}
void OnActivated(CoreApplicationView^ CoreAppView, IActivatedEventArgs^ Args)
{
CoreWindow^ Window = CoreWindow::GetForCurrentThread();
Window->Activate();
}
};
Run Code Online (Sandbox Code Playgroud)
到目前为止我的转换
internal class App : IFrameworkView
{
public void Initialize(CoreApplicationView AppView)
{
// Call OnActivated() when the Activated event is triggered
AppView.Activated += new TypedEventHandler<CoreApplicationView, IActivatedEventArgs>(this,this.OnActivated);
}
public void SetWindow(CoreWindow Window) {}
public void Load(String EntryPoint) {}
public void Run() {}
public void Uninitialize() {}
public void OnActivated(CoreApplicationView CoreAppView, IActivatedEventArgs Args)
{
CoreWindow Window = CoreWindow.GetForCurrentThread();
Window.Activate();
}
}
Run Code Online (Sandbox Code Playgroud)
对于C#事件连线,您不需要"this"参数:
public sealed class App : IFrameworkView
{
public virtual void Initialize(CoreApplicationView AppView)
{
AppView.Activated += new TypedEventHandler <CoreApplicationView, IActivatedEventArgs>(OnActivated);
}
public virtual void SetWindow(CoreWindow Window)
{
}
public virtual void Load(string EntryPoint)
{
}
public virtual void Run()
{
}
public virtual void Uninitialize()
{
}
public void OnActivated(CoreApplicationView CoreAppView, IActivatedEventArgs Args)
{
CoreWindow Window = CoreWindow.GetForCurrentThread();
Window.Activate();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
645 次 |
| 最近记录: |