Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Összhangban a .NET-számítási feladatok kapcsolódó változásaival, a C#-hoz készült Windows Forms-sablonok frissültek a global using irányelvek, fájlhatáskörű névterek és null értékű hivatkozástípusok támogatására. Mivel egy tipikus Windows Forms-alkalmazás több fájlra osztott több típusból áll, például Form1.cs és Form1.Designer.cs, a felső szintű utasítások különösen hiányoznak a Windows Forms-sablonokból. A frissített sablonok azonban tartalmazzák az alkalmazás bootstrap-kódját. Ez inkompatibilitást okozhat, ha a .NET egy korábbi verzióját célozza meg.
Bevezetett verzió
.NET 6 RC 1
Régi viselkedés
A Windows Forms alkalmazás belépési pontja így nézett ki:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MyApp
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
Új viselkedés
A .NET 6+-os alkalmazások új alkalmazásbeléptetési pontja a következőképpen néz ki:
namespace MyApp;
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
ApplicationConfiguration.Initialize() a Roslyn fordító által (forrásgenerátorokon keresztül) előállított rövid élettartamú API. Ez a metódus ugyanazokat a hívásokat bocsátja ki, mint az eredeti sablonok. Az API viselkedését az alábbi MSBuild tulajdonságok beállításával konfigurálhatja:
- ApplicationDefaultFont
- ApplicationHighDpiMode
- ApplicationUseCompatibleTextRendering
- AlkalmazásVizuálisStílusok
Ha nem konfigurálja explicit módon a tulajdonságokat, a rendszer futásidőben végrehajtja a következő kódot:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// ApplicationConfiguration.Initialize() will emit the following calls:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.Run(new Form1());
}
}
Kategória módosítása
Ez a módosítás hatással van a forráskompatibilitásra.
A változás oka
Az alkalmazás rendszerindítási funkciója:
- Lehetővé teszi, hogy a Windows Forms tervezője megjelenítse a tervezőfelületet az előnyben részesített betűtípusban.
- Csökkenti a sablonokban lévő ismétlődő kód mennyiségét.
Javasolt művelet
Ha ugyanazt a forrást használja egy olyan alkalmazás létrehozásához, amely több TFM-et céloz meg, az alábbiak egyikét teheti:
Cserélje le a
ApplicationConfiguration.Initialize();hívást az eredeti kódra (és elveszíti az API tervezőiApplication.SetDefaultFonttámogatását).Használjon
#if...#endifirányelveket, például:#if NET6_0_OR_GREATER ApplicationConfiguration.Initialize(); #else Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.SetHighDpiMode(HighDpiMode.SystemAware); #endif
Érintett API-k
Nincs adat.