C# 從零開始OA信用盤平臺修復寫 SharpDx 應用 控制檯創建 Sharpdx 窗口

首先創建OA信用盤平臺修復,需要請搜索【大神源碼論壇】dsluntan.com 客服企娥3393756370 V信17061863513,一個控制檯程序,選擇 dotnet framework 爲 4.5 這樣就可以保證下面安裝的庫可以使用

下載
最好是使用 VisualStudio 2017項目格式,這樣就可以直接複製下面代碼放在自己的項目文件,就可以快速使用 Nuget 安裝而不是需要等待 VisualStudio 的安裝
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net45</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SharpDX" Version="4.1.0" />
<PackageReference Include="SharpDX.D3DCompiler" Version="4.1.0" />
<PackageReference Include="SharpDX.Desktop" Version="3.1.1" />
<PackageReference Include="SharpDX.Direct2D1" Version="4.1.0" />
<PackageReference Include="SharpDX.Direct3D11" Version="4.1.0" />
<PackageReference Include="SharpDX.DXGI" Version="4.1.0" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
</Project>
1234567891011121314151617
如果使用的不是 VisualStudio 2017 的就通過 Nuget 安裝下面幾個庫

SharpDX
SharpDX.D3DCompiler
SharpDX.Desktop
SharpDX.Direct2D1
SharpDX.Direct3D11
SharpDX.DXGI

創建窗口
首先創建一個簡單的類,這個類主要使用 RenderForm 來創建窗口
class KikuSimairme
{
private RenderForm _renderForm;

    private const int Width = 1280;
    private const int Height = 720;

}

123456789
這個類的主要就是 RenderForm ,在使用的時候需要引用
using SharpDX.Windows;

12
現在還沒有創建好窗口,需要在構造函數使用這個代碼
public KikuSimairme()
{
_renderForm = new RenderForm();
_renderForm.ClientSize = new Size(Width, Height);
}
12345
如果是在 WPF 創建一個窗口,除了創建還需要顯示,下面來告訴大家如何顯示窗口
在KikuSimairme添加兩個方法
public void Run()
{
RenderLoop.Run(_renderForm, RenderCallback);
}

    private void RenderCallback()
    {

    }

123456789
這樣就可以在調用 Run 顯示窗口,因爲創建窗口需要開啓循環,使用 RenderLoop.Run 就可以
在不使用這個窗口時需要記得去掉
class KikuSimairme : IDisposable
{
// 其他代碼
public void Dispose()
{
_renderForm?.Dispose();
}
}
12345678
在 Main 函數創建類,然後顯示窗口
static void Main(string[] args)
{
using (var temp = new KikuSimairme())
{
temp.Run();
}
}
1234567
現在按下運行就可以看到顯示了一個窗口
雖然裏面還沒什麼東西,但是已經可以顯示窗口,在窗口裏面也就可以進行畫東西。以前很少在一個控制檯創建窗口,現在使用 sharpDx 可以很簡單在控制檯創建窗口
這是KikuSimairme類的全部代碼
class KikuSimairme : IDisposable
{
/// <inheritdoc />
public KikuSimairme()
{
_renderForm = new RenderForm();
_renderForm.ClientSize = new Size(Width, Height);
}

    private const int Width = 1280;

    private const int Height = 720;

    public void Run()
    {
        RenderLoop.Run(_renderForm, RenderCallback);
    }

    private RenderForm _renderForm;

    private void RenderCallback()
    {
    }

    /// <inheritdoc />
    public void Dispose()
    {
        _renderForm?.Dispose();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章