當前位置:
首頁 > 知識 > C從零開始寫 SharpDx 應用 控制台創建 Sharpdx 窗口

C從零開始寫 SharpDx 應用 控制台創建 Sharpdx 窗口

首先創建一個控制台程序,選擇 dotnet framework 為 4.5 這樣就可以保證下面安裝的庫可以使用

C從零開始寫 SharpDx 應用 控制台創建 Sharpdx 窗口

下載

最好是使用 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>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

如果使用的不是 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;
}
1
2
3
4
5
6
7
8
9

這個類的主要就是 RenderForm ,在使用的時候需要引用

using SharpDX.Windows;
1
2

現在還沒有創建好窗口,需要在構造函數使用這個代碼

public KikuSimairme()
{
_renderForm = new RenderForm();
_renderForm.ClientSize = new Size(Width, Height);
}
1
2
3
4
5

如果是在 WPF 創建一個窗口,除了創建還需要顯示,下面來告訴大家如何顯示窗口

在KikuSimairme添加兩個方法

public void Run()
{
RenderLoop.Run(_renderForm, RenderCallback);
}
private void RenderCallback()
{
}
1
2
3
4
5
6
7
8
9

這樣就可以在調用 Run 顯示窗口,因為創建窗口需要開啟循環,使用 RenderLoop.Run 就可以

在不使用這個窗口時需要記得去掉

class KikuSimairme : IDisposable
{
// 其他代碼
public void Dispose()
{
_renderForm?.Dispose();
}
}
1
2
3
4
5
6
7
8

在 Main 函數創建類,然後顯示窗口

static void Main(string[] args)
{
using (var temp = new KikuSimairme())
{
temp.Run();
}
}
1
2
3
4
5
6
7

現在按下運行就可以看到顯示了一個窗口

雖然裡面還沒什麼東西,但是已經可以顯示窗口,在窗口裡面也就可以進行畫東西。以前很少在一個控制台創建窗口,現在使用 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();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

雖然已經創建窗口,但是現在還沒有內容,在下一篇,我將會告訴大家如何在這個窗口修改顏色。更多SharpDx博客請到SharpDX 系列

C從零開始寫 SharpDx 應用 控制台創建 Sharpdx 窗口

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

Linux 常用基本命令之重定向
CSS樣式表

TAG:程序員小新人學習 |