これを行うには 3 つの方法があります。
1.) 完全に WPF に移行し、WinForms 固有のものが必要な場合は、WPF アプリケーションで WinForms .NET ライブラリを参照します。
2.) 必要なすべての WPF 機能 (スプラッシュ スクリーンなど) を含む新しい WPF ライブラリ (コードで参照できる .NET dll) を作成し、新しい WinForms .NET アプリを作成して WPF を参照します。プロジェクトを WinForms プロジェクトに追加し、WinForms アプリから WPF ライブラリを呼び出します。
3.) 何を達成しようとしているのか (特別なグラフィックス ウィンドウやその他の「ファンシーな」UI など)、およびそれにどれだけの時間/労力を費やしても構わないと思っているかに応じて、DirectX を学習するか、「gdi32. dll' をインポートし、その GDI+ 機能をインポートします。
編集:
WindowForm C# アプリで WPF スプラッシュ スクリーンを取得する手順は次のとおりです。
1.) 新しい C# Windows フォーム アプリケーションを作成し、好きなように呼び出して、好きな場所に保存します。
2.) ファイル -> 追加 -> 新しいプロジェクト
3.) 新しい C# WPF ユーザー コントロール ライブラリを追加し、SplashScreen という名前を付けます。同じファイルの場所に保存しようとすることに注意してください。別の場所に保存する場合は、必ず別の場所を選択してください。
4.) SplashScreen WPF ライブラリに作成されたデフォルトの「UserControl1.xaml」を削除します
5.) WPF プロジェクトを右クリックし、[追加]、[ウィンドウ] の順にクリックして、SplashScreen.xaml という名前を付けます。
6.) SplashScreen.xaml の既存のコードをすべて次のコードに置き換えます。
<Window x:Class="SplashScreen.SplashScreen"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowStyle="None" Background="Transparent" AllowsTransparency="True"
ShowInTaskbar="False" SizeToContent="WidthAndHeight"
Title="SplashScreen" WindowStartupLocation="CenterScreen">
<Image Source="logo.png" Stretch="None" />
</Window>
7.) WPF プロジェクトを右クリックして [追加] -> [既存のアイテム] を選択し、ファイル フィルターが [すべてのファイル] に設定されていることを確認して、[logo.png] を選択します。
8.) 新しくインポートした「logo.png」のプロパティを表示し、「ビルド アクション」が「リソース」に設定されていることを確認します。
9.) Windows フォーム プロジェクトで、[追加] -> [新しい参照] を右クリックし、[プロジェクト] タブを選択して、作成したばかりの [SplashScreen] WPF プロジェクトを選択します。
10.) Windows フォーム プロジェクトで、[追加] -> [新しい参照] を右クリックし、[.NET] タブを選択して、[PresentationFramework]、[PresentationCore]、[WindowsBase]、および [System.Xaml] ライブラリを選択します。
11.) Windows フォーム プロジェクトの 'Program.cs' ファイルで、次の操作を実行できます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace MyGame
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Create a new 'splash screen instance
SplashScreen.SplashScreen ss = new SplashScreen.SplashScreen();
// Show it
ss.Visibility = System.Windows.Visibility.Visible;
// Forces the splash screen visible
Application.DoEvents();
// Here's where you'd your actual loading stuff, but this
// thread sleep is here to simulate 'loading'
System.Threading.Thread.Sleep(5000);
// Hide your splash screen
ss.Visibility = System.Windows.Visibility.Hidden;
// Start your main form, or whatever
Application.Run(new Form1());
}
}
}