Neuzuweisungsänderungen für die Migration von .NET Framework 4.7.2 zu 4.8Retargeting Changes for Migration from .NET Framework 4.7.2 to 4.8

EinführungIntroduction

Neuzuweisungsänderungen wirken sich auf Apps aus, die für eine andere .NET Framework-Instanz neu kompiliert wurden.Retargeting changes affect apps that are recompiled to target a different .NET Framework. Dazu zählen:They include:

  • Änderungen in der Entwurfszeitumgebung.Changes in the design-time environment. Beispielsweise können Buildtools Warnungen ausgeben, obwohl dies zuvor nicht der Fall war.For example, build tools may emit warnings when previously they did not.

  • Änderungen in der Laufzeitumgebung.Changes in the runtime environment. Dies betrifft nur Apps, die speziell diese .NET Framework-Instanz als Ziel verwenden.These affect only apps that specifically target the retargeted .NET Framework. Apps, die auf frühere Versionen von .NET Framework abzielen, verhalten sich so, als würden sie in diesen Versionen ausgeführt.Apps that target previous versions of the .NET Framework behave as they did when running under those versions.

In den Artikeln, in denen Neuzuweisungsänderungen beschrieben werden, haben wir die einzelnen Punkte entsprechend ihrer erwarteten Auswirkung eingestuft:In the topics that describe retargeting changes, we have classified individual items by their expected impact, as follows:

Größer Dies ist eine wesentliche Änderung, die viele Apps beeinträchtigt oder erhebliche Änderungen des Codes erforderlich macht.Major This is a significant change that affects a large number of apps or that requires substantial modification of code.

Kleiner Dies ist eine Änderung, die eine kleine Anzahl von Apps beeinträchtigt oder geringfügige Änderungen des Codes erforderlich macht.Minor This is a change that affects a small number of apps or that requires minor modification of code.

Grenzfall Diese Änderung beeinträchtigt Apps nur in sehr spezifischen Szenarien, die nicht häufig vorkommen.Edge case This is a change that affects apps under very specific scenarios that are not common.

Transparent Diese Änderung hat keine nennenswerten Auswirkungen, die Entwickler oder Benutzer beachten müssten.Transparent This is a change that has no noticeable effect on the app's developer or user. Die App sollte keine Änderung benötigen.The app should not require modification because of this change.

Wenn Sie von .NET Framework 4.7.2 zu 4.8 migrieren, finden Sie in den folgenden Abschnitten weitere Informationen zu den Anwendungskompatibilitätsproblemen, die sich möglicherweise auf Ihre App auswirken können:If you are migrating from the .NET Framework 4.7.2 to 4.8, review the following topics for application compatibility issues that may affect your app:

KernspeicherCore

Verwaltete Kryptografieklassen lösen im FIPS-Modus keine CryptographyException ausManaged cryptography classes do not throw a CryptographyException in FIPS mode

DetailsDetails In .NET Framework 4.7.2 und früheren Versionen lösen verwaltete Kryptografieanbieterklassen wie SHA256Managed eine Ausnahme des Typs CryptographicException aus, wenn die kryptografischen Systembibliotheken im FIPS-Modus konfiguriert sind.In .NET Framework 4.7.2 and earlier versions, managed cryptographic provider classes such as SHA256Managed throw a CryptographicException when the system cryptographic libraries are configured in FIPS mode. Diese Ausnahmen werden ausgelöst, da die verwalteten Versionen nicht gemäß FIPS 140-2 (Federal Information Processing Standards) zertifiziert sind. Zudem werden Kryptografiealgorithmen blockiert, die im Sinne der FIPS-Regeln als nicht genehmigt galten.These exceptions are thrown because the managed versions have not undergone FIPS (Federal Information Processing Standards) 140-2 certification, as well as to block cryptographic algorithms that were not considered to be approved based on the FIPS rules. Da nur wenige Entwickler ihre Entwicklungscomputer im FIPS-Modus betreiben, werden diese Ausnahmen regelmäßig nur bei Produktionssystemen ausgelöst. Anwendungen, die .NET Framework 4.8 und höhere Versionen verwenden, wechseln automatisch zur neueren, gelockerten Richtlinie, sodass CryptographicException in diesen Fällen nicht mehr standardmäßig ausgelöst wird.Because few developers have their development machines in FIPS mode, these exceptions are frequently thrown only on production systems.Applications that target .NET Framework 4.8 and later versions automatically switch to the newer, relaxed policy, so that a CryptographicException is no longer thrown by default in such cases. Stattdessen leiten die verwalteten Kryptografieklassen kryptografische Vorgänge an eine kryptografische Systembibliothek weiter.Instead, the managed cryptography classes redirect cryptographic operations to a system cryptography library. Durch diese Richtlinienänderung wird ein möglicherweise verwirrender Unterschied zwischen Entwicklungs- und Produktionsumgebungen beseitigt, und native Komponenten und verwaltete Komponenten werden gemäß derselben Kryptografierichtlinie ausgeführt.This policy change effectively removes a potentially confusing difference between developer environments and the production environments and makes native components and managed components operate under the same cryptographic policy.
VorschlagSuggestion Wenn dieses Verhalten nicht erwünscht ist, können Sie sich dagegen entscheiden und das vorherige Verhalten wiederherstellen, sodass CryptographicException im FIPS-Modus ausgelöst wird, indem Sie die folgende AppContextSwitchOverrides-Konfigurationseinstellung im Abschnitt <runtime> der Konfigurationsdatei Ihrer Anwendung hinzufügen:If this behavior is undesirable, you can opt out of it and restore the previous behavior so that a CryptographicException is thrown in FIPS mode by adding the following AppContextSwitchOverrides configuration setting to the <runtime> section of your application configuration file:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Security.Cryptography.UseLegacyFipsThrow=true" />
</runtime>
Wenn Ihre Anwendung .NET Framework 4.7.2 oder frühere Versionen verwendet, können Sie diese Änderung aktivieren, indem Sie die folgende AppContextSwitchOverrides-Konfigurationseinstellung im Abschnitt <runtime> der Konfigurationsdatei Ihrer Anwendung hinzufügen:If your application targets .NET Framework 4.7.2 or earlier, you can also opt in to this change by adding the following AppContextSwitchOverrides configuration setting to the <runtime> section of your application configuration file:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Security.Cryptography.UseLegacyFipsThrow=false" />
</runtime>
BereichScope Microsoft EdgeEdge
VersionVersion 4.84.8
TypType NeuzuweisungRetargeting
Betroffene APIsAffected APIs

Windows FormsWindows Forms

Verbesserung der Barrierefreiheit von Windows Forms-Steuerelementen für .NET 4.8Accessibility improvements in Windows Forms controls for .NET 4.8

DetailsDetails Die Arbeitsweise des Windows Forms-Frameworks mit Technologien für die Barrierefreiheit wird weiter verbessert, um Kunden von Windows Forms besser zu unterstützen.The Windows Forms Framework is continuing to improve how it works with accessibility technologies to better support Windows Forms customers. Folgende Änderungen wurden u.a. vorgenommen:These include the following changes:
  • Änderungen zum Verbessern der Anzeige während des Modus mit hohem KontrastChanges to improve display during High Contrast mode.
  • Änderungen an der Interaktion mit der Sprachausgabe.Changes to interaction with Narrator.
  • Änderungen an der Hierarchie der Barrierefreiheit (Verbesserung der Navigation durch die Benutzeroberflächenautomatisierungsstruktur)Changes in the Accessible hierarchy (improving navigation through the UI Automation tree).
VorschlagSuggestion Aktivieren oder Deaktivieren dieser Änderungen: Damit die Anwendung von diesen Änderungen profitieren kann, muss sie unter .NET Framework 4.8 oder höher ausgeführt werden.How to opt in or out of these changesIn order for the application to benefit from these changes, it must run on the .NET Framework 4.8. Die Anwendung kann diese Änderungen aktivieren, wenn Sie Folgendes durchführen:The application can opt in into these changes in either of the following ways:
  • Kompilieren Sie diese nochmals, um .NET Framework 4.8 zu verwenden.It is recompiled to target the .NET Framework 4.8. Diese Änderungen der Barrierefreiheit werden standardmäßig für Windows Forms-Anwendungen aktiviert, die .NET Framework 4.8 oder höher verwenden.These accessibility changes are enabled by default on Windows Forms applications that target the .NET Framework 4.8.
  • Die Anwendung verwendet .NET Framework 4.7.2 oder eine frühere Version und deaktiviert veraltete Verhaltensweisen der Barrierefreiheit, indem wie im folgenden Beispiel dargestellt folgender AppContext-Switch zum Abschnitt <runtime> der Datei „app.config“ hinzugefügt und auf false festgelegt wird.It targets the .NET Framework 4.7.2 or earlier version and opts out of the legacy accessibility behaviors by adding the following AppContext switch to the <runtime> section of the app config file and setting it to false, as the following example shows.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
</startup>
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true/false;key2=true/false  -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false" />
</runtime>
</configuration>
Beachten Sie Folgendes: Um die Barrierefreiheitsfunktionen zu aktivieren, die in .NET Framework 4.8 hinzugefügt wurden, müssen Sie auch die Barrierefreiheitsfunktion von .NET Framework 4.7.1 und 4.7.2 aktivieren.Note that to opt in to the accessibility features added in .NET Framework 4.8, you must also opt in to accessibility features of .NET Framework 4.7.1 and 4.7.2 as well. Bei Anwendungen, die .NET Framework 4.8 verwenden und die veralteten Verhaltensweisen für die Barrierefreiheit beibehalten sollen, können Sie die Verwendung des veralteten Features für die Barrierefreiheit aktivieren, indem Sie den AppContext-Switch auf true festlegen. Wenn Sie die Unterstützung zum Aufrufen der QuickInfo für Tastenkombinationen aktivieren möchten, müssen Sie dem „AppContextSwitchOverrides“-Wert die Zeile Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false hinzufügen:Applications that target the .NET Framework 4.8 and want to preserve the legacy accessibility behavior can opt in to the use of legacy accessibility features by explicitly setting this AppContext switch to true.Enabling the keyboard ToolTip invocation support requires adding the Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false line to the AppContextSwitchOverrides value:
'<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.System.Windows.Forms.UseLegacyToolTipDisplay=false" />'
Zum Aktivieren dieser Funktion müssen Sie die bereits erwähnten Barrierefreiheitsfunktionen von .NET Framework 4.7.1 bis 4.8 aktivieren.Note that enabling this feature requires opting in to the aforementioned accessibility features of .NET Framework 4.7.1 - 4.8. Wenn eine der Barrierefreiheitsfunktionen nicht aktiviert wurde, die Funktion für die Anzeige von QuickInfos jedoch aktiviert wurde, wird beim ersten Zugriff auf diese Funktion ein Laufzeit-NotSupportedException ausgelöst.Also, if any of the accessibility features are not opted in but the tooltip display feature is opted in, a runtime NotSupportedException will be thrown on the first access to these features. Die Ausnahmemeldung gibt an, dass für QuickInfos für Tastenkombinationen die Barrierefreiheitsverbesserungen der Stufe 3 aktiviert werden müssen. Verwendung von durch das Betriebssystem definierten Farben in Designs mit hohem KontrastThe exception message indicates that keyboard ToolTips require accessibility improvements of level 3 to be enabled.Use of OS-defined colors in High Contrast themes
  • Verbesserte Designs mit hohem KontrastImproved high-contrast themes.
Verbesserte Unterstützung für die SprachausgabeImproved Narrator supportVerbesserte Unterstützung der CheckedListBox-BarrierefreiheitImproved CheckedListBox Accessibility support
  • Verbesserte Unterstützung für die Sprachausgabe beim CheckedListBox-SteuerelementImproved Narrator support for the CheckedListBox control. Beim Navigieren zum CheckedListBox-Steuerelement mit der Tastatur konzentriert sich die Sprachausgabe auf das CheckedListBox-Element und kündigt es an.When navigating to the CheckedListBox control using the keyboard, Narrator focuses the CheckedListBox item and announces it.
  • Bei einem leeren CheckedListBox-Steuerelement wird nun ein Fokusrechteck für ein virtuelles erstes Element angezeigt, wenn der Fokus auf dem Steuerelement liegt.An empty CheckedListBox control now has a focus rectangle drawn for a virtual first item when the control becomes focused.
Verbesserte Unterstützung der ComboBox-BarrierefreiheitImproved ComboBox Accessibility support
  • Die Unterstützung für die Benutzeroberflächenautomatisierung wurde für das ComboBox-Steuerelement mit der Möglichkeit aktiviert, Benachrichtigungen der Benutzeroberflächenautomatisierung und andere Funktionen der Benutzeroberflächenautomatisierung zu verwenden.Enabled UI Automation support for the ComboBox control, with the ability to use UI Automation notifications and other UI Automation features.
Verbesserte Unterstützung der DataGridView-BarrierefreiheitImproved DataGridView Accessibility support
  • Die Unterstützung für die Benutzeroberflächenautomatisierung wurde für das DataGridView-Steuerelement mit der Möglichkeit aktiviert, Benachrichtigungen der Benutzeroberflächenautomatisierung und andere Funktionen der Benutzeroberflächenautomatisierung zu verwenden.Enabled UI Automation support for DataGridView control with ability to use UI Automation notifications and other UI Automation features.
  • Das Element der Benutzeroberflächenautomatisierung, das DataGridViewComboBoxEditingControl oder DataGridViewTextBoxEditingControl entspricht, ist nun ein untergeordnetes Element der entsprechenden Bearbeitungszelle.The UI Automation element which corresponds to the DataGridViewComboBoxEditingControl or DataGridViewTextBoxEditingControl is now a child of corresponding editing cell.
Verbesserte Unterstützung der LinkLabel-BarrierefreiheitImproved LinkLabel Accessibility support
  • Verbesserte Barrierefreiheit für das LinkLabel-Steuerelement: Die Sprachausgabe kündigt den deaktivierten Zustand für den Link an, wenn das entsprechende LinkLabel-Steuerelement deaktiviert ist.Improved LinkLabel control accessibility: Narrator announces the disabled state for the link if the corresponding LinkLabel control is disabled.
Verbesserte Unterstützung der ProgressBar-BarrierefreiheitImproved ProgressBar Accessibility support
  • Die Unterstützung für die Benutzeroberflächenautomatisierung wurde für das ProgressBar-Steuerelement mit der Möglichkeit aktiviert, Benachrichtigungen der Benutzeroberflächenautomatisierung und andere Funktionen der Benutzeroberflächenautomatisierung zu verwenden.Enabled UI Automation support for the ProgressBar control with the ability to use UI Automation notifications and other UI Automation features. Entwickler können nun Benachrichtigungen zur Benutzeroberflächenautomatisierung verwenden, die von der Sprachausgabe zur Angabe des Status angekündigt werden können.Developers are now able to use UI Automation notifications which Narrator can announce to indicate progress.
Eine Übersicht über Ereignisse der Benutzeroberflächenautomatisierung sowie Benachrichtigungsereignisse der Benutzeroberflächenautomatisierung finden Sie unter Übersicht über Benutzeroberflächenautomatisierungs-Ereignisse. Verbesserte Unterstützung der PropertyGrid-BarrierefreiheitFor an overview of UI automation events overview, including UI automation notification events, see the UI Automation Events Overview.Improved PropertyGrid Accessibility support
  • Die Unterstützung für die Benutzeroberflächenautomatisierung wurde für das PropertyGrid-Steuerelement mit der Möglichkeit aktiviert, Benachrichtigungen der Benutzeroberflächenautomatisierung und andere Funktionen der Benutzeroberflächenautomatisierung zu verwenden.Enabled UI Automation support for the PropertyGrid control, with the ability to use UI Automation notifications and other UI Automation features.
  • Das Element der Benutzeroberflächenautomatisierung, das der derzeit bearbeiteten Eigenschaft entspricht, ist nun ein untergeordnetes Element des entsprechenden Benutzeroberflächenautomatisierungselements des Eigenschaftselements.The UI Automation element which corresponds to the currently edited property is now a child of the corresponding property item UI Automation element.
  • Das Element der Benutzeroberflächenautomatisierung des Eigenschaftselements ist nun ein untergeordnetes Element des entsprechenden Kategorieelements, wenn das übergeordnete PropertyGrid-Steuerelement auf die Kategorieansicht festgelegt ist.The UI Automation property item element is now a child of the corresponding category element if the parent PropertyGrid control is set to category view.
Verbesserte ToolStrip-UnterstützungImproved ToolStrip support
  • Die Unterstützung für die Benutzeroberflächenautomatisierung wurde für das ToolStrip-Steuerelement mit der Möglichkeit aktiviert, Benachrichtigungen der Benutzeroberflächenautomatisierung und andere Funktionen der Benutzeroberflächenautomatisierung zu verwenden.Enabled UI Automation support for the ToolStrip control, with the ability to use UI Automation notifications and other UI Automation features.
  • Verbesserte Navigation durch ToolStrip-Elemente.Improved navigation through ToolStrip items.
  • Im Elementmodus verschwindet der Sprachausgabefokus nicht und wechselt nicht zu ausgeblendeten Elementen.In items mode, Narrator focus does not disappear and does not go to hidden items.
Verbesserte visuelle HinweiseImproved Visual cues
  • Ein leeres CheckedListBox-Steuerelement zeigt nun einen Fokusindikator an, wenn es den Fokus erhält.An empty CheckedListBox control now displays a focus indicator when it receives focus.
Hinweis: Die Unterstützung für die Benutzeroberflächenautomatisierung für Steuerelemente wird zur Laufzeit aktiviert, wird jedoch zur Entwurfszeit nicht verwendet.Note: UI automation support is enabled for controls in runtime but is not used in design time. Einen Überblick über die Benutzeroberflächenautomatisierung finden Sie unter Benutzeroberflächenautomatisierung: Übersicht.For an overview of UI automation, see the UI Automation Overview.

Aufrufen von QuickInfos für Steuerelemente über die TastaturInvoking controls' ToolTips with a keyboard

  • QuickInfos für Steuerelemente können nun durch Fokussieren des Steuerelements über die Tastatur aufgerufen werden.Control tooltip can now be invoked by focusing the control with keyboard. Diese Funktion muss für die Anwendung explizit aktiviert werden. (Informationen hierzu finden Sie unter "Aktivieren bzw. Deaktivieren dieser Änderungen".)This feature needs to be enabled explicitly for the application (see section "How to opt in or out of these changes")
BereichScope HauptversionMajor
VersionVersion 4.84.8
TypType NeuzuweisungRetargeting

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

Verbesserungen der Barrierefreiheit in WPFAccessibility improvements in WPF

DetailsDetails Verbesserungen beim hohen KontrastHigh Contrast improvements
  • Der Fokus für das Expander-Steuerelement wird nun angezeigt.The focus for the Expander control is now visible. In früheren Versionen von .NET Framework war dies nicht der Fall.In previous versions of the .NET Framework, it was not.
  • Der Text, der in den CheckBox- und RadioButton-Steuerelementen angezeigt wird, wenn diese ausgewählt sind, ist nun einfacher erkennbar als in den vorherigen Versionen von .NET Framework.The text in CheckBox and RadioButton controls when they are selected is now easier to see than in previous .NET Framework versions.
  • Der Rahmen eines deaktivierten ComboBox-Elements hat nun die gleiche Farbe wie der deaktivierte Text.The border of a disabled ComboBox is now the same color as the disabled text. In früheren Versionen von .NET Framework war dies nicht der Fall.In previous versions of the .NET Framework, it was not.
  • Deaktivierte Schaltflächen und Schaltflächen mit Fokus verwenden nun das richtige Farbdesign.Disabled and focused buttons now use the correct theme color. In früheren Versionen von .NET Framework war dies nicht der Fall.In previous versions of the .NET Framework, they did not.
  • Die Dropdownschaltfläche ist nun sichtbar, wenn das Format eines ComboBox-Steuerelements auf ToolBar.ComboBoxStyleKey festgelegt ist. In früheren Versionen von .NET Framework war dies nicht der Fall.The dropdown button is now visible when a ComboBox control's style is set to ToolBar.ComboBoxStyleKey, In previous versions of the .NET Framework, it was not.
  • Der Pfeil für die Sortieranzeige in einem DataGrid-Steuerelement verwendet nun die Farben des Designs.The sort indicator arrow in a DataGrid control now uses theme colors. In früheren Versionen von .NET Framework war dies nicht der Fall.In previous versions of the .NET Framework, it did not.
  • Das Standardformat für Links ändert sich nun in das richtige Farbdesign, wenn mit der Maus darauf gezeigt wird.The default hyperlink style now changes to the correct theme color on mouse over. In früheren Versionen von .NET Framework war dies nicht der Fall.In previous versions of the .NET Framework, it did not.
  • Es wird nun angezeigt, wenn der Tastaturfokus sich auf Optionsfeldern befindet.The Keyboard focus on radio buttons is now visible. In früheren Versionen von .NET Framework war dies nicht der Fall.In previous versions of the .NET Framework, it was not.
  • Die Spalte für Kontrollkästchen des DataGrid-Steuerelements verwendet nun die erwarteten Farben für das Feedback des Tastaturfokus.The DataGrid control's checkbox column now uses the expected colors for keyboard focus feedback. In früheren Versionen von .NET Framework war dies nicht der Fall.In previous versions of the .NET Framework, it did not.
  • Die visuellen Elemente des Tastaturfokus werden nun für ComboBox- und ListBox-Steuerelemente angezeigt.the Keyboard focus visuals are now visible on ComboBox and ListBox controls. In früheren Versionen von .NET Framework war dies nicht der Fall.In previous versions of the .NET Framework, it was not.

Verbesserungen der Interaktion mit der SprachausgabeScreen reader interaction improvements
  • Expander-Steuerelemente werden von der Sprachausgabe nun richtig als Gruppen (erweitern/reduzieren) ausgegeben.Expander controls are now correctly announced as groups (expand/collapse) by screen readers.
  • DataGridCell-Steuerelemente werden von der Sprachausgabe nun richtig als Datenrasterzellen (lokalisiert) ausgegeben.DataGridCell controls are now correctly announced as data grid cell (localized) by screen readers.
  • Die Sprachausgabe gibt nun den Namen eines bearbeitbaren ComboBox-Elements aus.Screen readers will now announce the name of an editable ComboBox.
  • PasswordBox-Steuerelemente werden von der Sprachausgabe nicht mehr als "Es befindet sich kein Element in der Ansicht." ausgegeben.PasswordBox controls are no longer announced as "no item in view" by screen readers.

LiveRegion-UnterstützungLiveRegion support
Sprachausgaben wie die Microsoft-Sprachausgabe unterstützen die Benutzer dabei, die Inhalte der Benutzeroberfläche einer Anwendung zu erkennen. Üblicherweise wird dies durch eine Beschreibung des Teils der Benutzeroberfläche erreicht, in dem sich zurzeit der Fokus befindet, da es sich dabei wahrscheinlich um das Element handelt, das für den Benutzer aktuell am wichtigsten ist.Screen readers such as Narrator help people know the UI contents of an application, usually by describing something about the UI that's currently focused, because that is probably the element of most interest to the user. Wenn ein Element der Benutzeroberfläche sich jedoch an einer beliebigen Stelle des Bildschirms ändert und nicht fokussiert wird, wird der Benutzer möglicherweise nicht informiert und verpasst wichtige Informationen.However, if a UI element changes somewhere in the screen and it does not have the focus, the user may not be informed and miss important information. LiveRegions wurden dafür entwickelt, dieses Problem zu lösen.LiveRegions are meant to solve this problem. Entwickler können diese verwenden, um der Sprachausgabe oder einem anderen Benutzeroberflächen-Automatisierungsclient mitzuteilen, dass eine wichtige Änderung an einem Element der Benutzeroberfläche vorgenommen wurde.A developer can use them to inform the screen reader or any other UI Automation client that an important change has been made to a UI element. Die Sprachausgabe kann dann entscheiden, wie und wann der Benutzer über diese Änderung informiert wird.The screen reader can then decide how and when to inform the user of this change. Die LiveSetting-Eigenschaft sorgt ebenfalls dafür, dass die Sprachausgabe den Benutzer über Änderungen an der Benutzeroberfläche informiert.The LiveSetting property also lets the screen reader know how important it is to inform the user of the change made to the UI.
VorschlagSuggestion Aktivieren bzw. Deaktivieren dieser ÄnderungenHow to opt in or out of these changes
Damit die Anwendung von diesen Änderungen profitieren kann, muss sie unter .NET Framework 4.7.1 oder höher ausgeführt werden.In order for the application to benefit from these changes, it must run on the .NET Framework 4.7.1 or later. Die Anwendung kann von diesen Änderungen profitieren, wenn Sie Folgendes durchführen:The application can benefit from these changes in either of the following ways:
  • Festlegen von .NET Framework 4.7.1 als Ziel.Target the .NET Framework 4.7.1. Dies ist die empfohlene Vorgehensweise.This is the recommended approach. Diese Änderungen der Barrierefreiheit werden standardmäßig für WPF-Anwendungen aktiviert, die .NET Framework 4.7.1 oder höher anzielen.These accessibility changes are enabled by default on WPF applications that target the .NET Framework 4.7.1 or later.
  • Veraltete Verhaltensweisen der Barrierefreiheit werden deaktiviert, indem wie im folgenden Beispiel dargestellt folgender AppContext-Schalter im Abschnitt <runtime> der Datei „app.config“ hinzugefügt und auf false festgelegt wird.It opts out of the legacy accessibility behaviors by adding the following AppContext Switch in the <runtime> section of the app config file and setting it to false, as the following example shows.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
</startup>
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true/false;key2=true/false  -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false" />
</runtime>
</configuration>
Bei Anwendungen, die .NET Framework 4.7.1 oder höher als Zielplattform verwenden und die Legacy-Barrierefreiheitsverhalten beibehalten sollen, können Sie die Verwendung des veralteten Features für die Barrierefreiheit aktivieren, indem Sie die AppContext-Option auf true festlegen.Applications that target the .NET Framework 4.7.1 or later and want to preserve the legacy accessibility behavior can opt in to the use of legacy accessibility features by explicitly setting this AppContext switch to true.
Einen Überblick über die Benutzeroberflächenautomatisierung finden Sie unter Benutzeroberflächenautomatisierung: Übersicht.For an overview of UI automation, see the UI Automation Overview.
BereichScope HauptversionMajor
VersionVersion 4.7.14.7.1
TypType NeuzuweisungRetargeting
Betroffene APIsAffected APIs

Hinzufügen der öffentlichen Eigenschaft „Add SelectionTextBrush“ zur nicht auf Adorner basierenden Auswahl von TextBox/PasswordBoxAdd SelectionTextBrush public property to TextBox/PasswordBox non-adorner selection

DetailsDetails In WPF-Anwendungen, die eine nicht auf Adorner basierende Textauswahl für TextBox und PasswordBox verwenden, können Entwickler nun die neu hinzugefügte „SelectionTextBrush“-Eigenschaft festlegen, um das Rendering des ausgewählten Texts zu ändern.In WPF applications using non-adorner based text selection for TextBox and PasswordBox, developers may now set the newly added SelectionTextBrush property in order to alter the rendering of the selected text. Diese Farbe ändert sich standardmäßig mit HighlightTextBrushKey.By default, this color changes with HighlightTextBrushKey. Wenn die nicht auf Adorner basierende Textauswahl nicht aktiviert ist, hat diese Eigenschaft keine Auswirkungen.If non-adorner based text selection is not enabled, this property does nothing.
VorschlagSuggestion Nach dem Aktivieren einer nicht auf Adorner basierenden Textauswahl können Sie die Eigenschaften PasswordBox.SelectionTextBrush und SelectionTextBrush verwenden, um die Darstellung des ausgewählten Texts zu ändern.Once non-adorner based text selection is enabled, you can use the PasswordBox.SelectionTextBrush and SelectionTextBrush property to change the appearance of the selected text. Dies kann mithilfe von XAML erreicht werden:This can be achieved using XAML:
<TextBox SelectionBrush="Red" SelectionTextBrush="White"  SelectionOpacity="0.5"
Foreground="Blue" CaretBrush="Blue">
This is some text.
</TextBox>
BereichScope HauptversionMajor
VersionVersion 4.84.8
TypType NeuzuweisungRetargeting
Betroffene APIsAffected APIs

HwndHost ändert nun die Größe eines untergeordneten HWND bei DPI-Änderungen ordnungsgemäßHwndHost now correctly resizes child-HWND during DPI changes

DetailsDetails Wenn WPF im PMA-Modus (Per-Monitor Aware) ausgeführt wurde, wurde in .NET Framework 4.7.2 und früheren Versionen die Größe von in HwndHost gehosteten Steuerelementen nach DPI-Änderungen, also beispielsweise beim Verschieben von Anwendungen von einem Monitor zu einem anderen, nicht ordnungsgemäß geändert.In .NET Framework 4.7.2 and earlier versions, when WPF was run in Per-Monitor Aware mode, controls hosted within HwndHost were not sized correctly after DPI changes, such as when moving applications from one monitor to another. Mit dieser Korrektur wird sichergestellt, dass die Größe von gehosteten Steuerelementen ordnungsgemäß geändert wird.This fix ensures that hosted controls are sized appropriately.
VorschlagSuggestion Damit die Anwendung von diesen Änderungen profitiert, muss sie unter .NET Framework 4.7.2 oder höher ausgeführt werden. Zudem muss dieses Verhalten aktiviert werden, indem der folgende AppContext-Switch im <runtime>-Abschnitt der Konfigurationsdatei der Anwendung wie im folgenden Beispiel auf false festgelegt wird.In order for the application to benefit from these changes, it must run on the .NET Framework 4.7.2 or later, and it must opt-in to this behavior by setting the following AppContext Switch in the <runtime> section of the app config file to false, as the following example shows.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
</startup>
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true/false;key2=true/false  -->
<AppContextSwitchOverrides value="Switch.System.Windows.DoNotUsePresentationDpiCapabilityTier2OrGreater=false" />
</runtime>
</configuration>
BereichScope HauptversionMajor
VersionVersion 4.84.8
TypType NeuzuweisungRetargeting

Windows Workflow Foundation (WF)Windows Workflow Foundation (WF)

Verbesserungen der Bedienungshilfen im Workflow-Designer von Windows Workflow Foundation (WF)Accessibility improvements in Windows Workflow Foundation (WF) workflow designer

DetailsDetails Die Arbeitsweise von Workflow-Designer von Windows Workflow Foundation (WF) mit Technologien für die Barrierefreiheit wurde verbessert.The Windows Workflow Foundation (WF) workflow designer is improving how it works with accessibility technologies. Diese Verbesserungen umfassen folgende Änderungen:These improvements include the following changes:
  • Die Aktivierreihenfolge wurde bei manchen Steuerelementen in „ Von links nach rechts“ und in „Von oben nach unten“ geändert:The tab order is changed to left to right and top to bottom in some controls:
  • Das Fenster „Korrelation initialisieren“ für das Festlegen von Korrelationsdaten für die InitializeCorrelation-AktivitätThe initialize correlation window for setting correlation data for the InitializeCorrelation activity
  • Das Fenster „Inhaltsdefinition“ für die Aktivitäten Receive, Send, SendReply und ReceiveReplyThe content definition window for the Receive, Send, SendReply, and ReceiveReply activities
  • Weitere Funktionen sind über die Tastatur verfügbar:More functions are available via the keyboard:
  • Beim Bearbeiten der Eigenschaften einer Aktivität können die Eigenschaftengruppen über die Tastatur reduziert werden, wenn diese zum ersten Mal fokussiert werden.When editing the properties of an activity, property groups can be collapsed by keyboard the first time they are focused.
  • Auf Warnsymbole kann nun über die Tastatur zugegriffen werden.Warning icons are now accessible by keyboard.
  • Auf die Schaltfläche „Weitere Eigenschaften“ im Fenster „Eigenschaften“ kann nun über die Tastatur zugegriffen werden.The More Properties button in the Properties window is now accessible by keyboard.
  • Tastaturbenutzer können nun auf die Headerelemente in den Bereichen „Argumente“ und „Variablen“ des Workflow-Designers zugreifen.Keyboard users now can access the header items in the Arguments and Variables panes of the Workflow Designer.
  • Verbesserte Sichtbarkeit von Elementen mit Fokus, z.B. in folgenden Fällen:Improved visibility of items with focus, such as when:
  • Hinzufügen von Zeilen zu Datenrastern, die vom Workflow-Designer und von Aktivitäts-Designern verwendet werdenAdding rows to data grids used by the Workflow Designer and activity designers.
  • Wechseln von Feldern mit der TAB-TASTE in den Aktivitäten ReceiveReply und SendReplyTabbing through fields in the ReceiveReply and SendReply activities.
  • Festlegen von Standardwerten für Variablen oder ArgumenteSetting default values for variables or arguments
  • Sprachausgaben können Folgendes nun richtig erkennen:Screen readers can now correctly recognize:
  • Breakpoints, die im Workflow-Designer festgelegt wurdenBreakpoints set in the workflow designer.
  • Die Aktivitäten FlowSwitch<T>, FlowDecision und CorrelationScopeThe FlowSwitch<T>, FlowDecision, and CorrelationScope activities.
  • Die Inhalte der Receive-AktivitätThe contents of the Receive activity.
  • Den Zieltyp für die InvokeMethod-AktivitätThe Target Type for the InvokeMethod activity.
  • Das Kombinationsfeld „Ausnahme“ und den Abschnitt „Finally“ in der TryCatch-AktivitätThe Exception combobox and the Finally section in the TryCatch activity.
  • Das Kombinationsfeld „Nachrichtentyp“, den Splitter im Fenster „Korrelationsinitialisierer hinzufügen“, das Fenster „Inhaltsdefinition“ und das Definitionsfenster „CorrelatesOn“ in den Messagingaktivitäten (Receive, Send, SendReply und ReceiveReply)The Message Type combobox, the splitter in the Add Correlation Initializers window, the Content Definition window, and the CorrelatesOn Defintion window in the messaging activities (Receive, Send, SendReply, and ReceiveReply).
  • Übertragungen von Zustandsautomaten und ÜbertragungszieleState machine transitions and transitions destinations.
  • Anmerkungen und Connectors von FlowDecision-AktivitätenAnnotations and connectors on FlowDecision activities.
  • Die per Rechtsklick aufrufbaren Kontextmenüs von AktivitätenThe context (right-click) menus for activities.
  • Die Editors für Eigenschaftswerte, die Schaltfläche, „Suche löschen“, die Sortierschaltflächen „Nach Kategorie“ und „Alphabetisch“ sowie das Dialogfeld „Ausdrucks-Editor“ im EigenschaftenrasterThe property value editors, the Clear Search button, the By Category and Alphabetical sort buttons, and the Expression Editor dialog in the properties grid.
  • Den Zoomprozentwert im Workflow-DesignerThe zoom percentage in the Workflow Designer.
  • Das Trennzeichen in den Aktivitäten Parallel und PickThe separator in Parallel and Pick activities.
  • Die InvokeDelegate-AktivitätThe InvokeDelegate activity.
  • Das Fenster „Typen auswählen“ für Wörterbuchaktivitäten (Microsoft.Activities.AddToDictionary<TKey,TValue>, Microsoft.Activities.RemoveFromDictionary<TKey,TValue> usw.)The Select Types window for dictionary activities (Microsoft.Activities.AddToDictionary<TKey,TValue>, Microsoft.Activities.RemoveFromDictionary<TKey,TValue>, etc.).
  • Das Fenster „.NET-Typ suchen und auswählen“The Browse and Select .NET Type window.
  • Breadcrumbs im Workflow-DesignerBreadcrumbs in the Workflow Designer.
  • Benutzer, die Designs mit hohem Kontrast verwenden, werden viele Verbesserungen in der Sichtbarkeit des Workflow-Designers und dessen Steuerelementen feststellen. Dazu zählen verbesserte Kontrastverhältnisse zwischen Elementen und besser erkennbare Auswahlfelder für Fokuselemente.Users who choose High Contrast themes will see many improvements in the visibility of the Workflow Designer and its controls like better contrast ratios between elements and more noticeable selection boxes used for focus elements.
VorschlagSuggestion Wenn Sie eine Anwendung mit einem neu gehosteten Workflow-Designer besitzen, kann Ihre Anwendung von diesen Änderungen profitieren, indem Sie eine der folgenden Aktionen durchführen:If you have an application with a re-hosted workflow designer, your application can benefit from these changes by performing either of these actions:
  • Rekompilieren Sie Ihre Anwendung, um .NET Framework 4.7.1 anzuzielen.Recompile your application to target the .NET Framework 4.7.1. Die Verbesserungen der Barrierefreiheit werden standardmäßig aktiviert.These accessibility changes are enabled by default.
  • Wenn Ihre Anwendung .NET Framework 4.7 oder früher anzielt, aber auf .NET Framework 4.7.1 ausgeführt wird, können Sie die veralteten Verhaltensweisen für die Barrierefreiheit deaktivieren, indem Sie folgendes AppContext-Element zum <runtime>-Abschnitt der app.config-Datei hinzufügen und dieses wie im folgenden Beispiel dargestellt auf false festlegen.If your application targets the .NET Framework 4.7 or earlier but is running on the .NET Framework 4.7.1, you can opt out of these legacy accessibility behaviors by adding the following AppContext switch to the <runtime> section of the app.config file and set it to false, as the following example shows.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
</startup>
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true/false;key2=true/false  -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false" />
</runtime>
</configuration>
Bei Anwendungen, die .NET Framework 4.7.1 oder höher als Zielplattform verwenden und die Legacy-Barrierefreiheitsverhalten beibehalten sollen, können Sie die Verwendung des veralteten Features für die Barrierefreiheit aktivieren, indem Sie die AppContext-Option auf true festlegen.Applications that target the .NET Framework 4.7.1 or later and want to preserve the legacy accessibility behavior can opt in to the use of legacy accessibility features by explicitly setting this AppContext switch to true.
BereichScope GeringMinor
VersionVersion 4.7.14.7.1
TypType NeuzuweisungRetargeting

Änderung der Workflow-XAML-Prüfsummen für Symbole von SHA1 in SHA256Workflow XAML checksums for symbols changed from SHA1 to SHA256

DetailsDetails Die Workflowlaufzeit generiert unter Verwendung eines Hashalgorithmus zur Unterstützung des Debuggens mit Visual Studio eine Prüfsumme für eine Workflow-XAML-Datei.To support debugging with Visual Studio, the Workflow runtime generates a checksum for a workflow XAML file using a hashing algorithm. In .NET Framework 4.6.2 und früheren Versionen wird beim Hashing der Workflowprüfsumme der MD5-Algorithmus verwendet, der auf Systemen, auf den FIPS aktiviert ist, Probleme verursacht hat.In the .NET Framework 4.6.2 and earlier versions, workflow checksum hashing used the MD5 algorithm, which caused issues on FIPS-enabled systems. Ab .NET Framework 4.7 wurde der Standardalgorithmus in SHA1 geändert.Starting with the .NET Framework 4.7, the default algorithm was changed to SHA1. Ab .NET Framework 4.8 wurde der Standardalgorithmus in SHA256 geändert.Starting with the .NET Framework 4.8, the default algorithm was changed to SHA256.
VorschlagSuggestion Wenn Ihr Code aufgrund eines Prüfsummenfehlers keine Workflowinstanzen laden oder keine entsprechende Symbole finden kann, sollten Sie versuchen, den AppContext-Schalter "Switch.System.Activities.UseSHA1HashForDebuggerSymbols" auf TRUE festzulegen. Dies können Sie in Form von Code tun:If your code is unable to load workflow instances or to find appropriate symbols due to a checksum failure, try setting the AppContext switch "Switch.System.Activities.UseSHA1HashForDebuggerSymbols" to true.In code:
System.AppContext.SetSwitch("Switch.System.Activities.UseSHA1HashForDebuggerSymbols", true);
Stattdessen können Sie dies auch im Rahmen der Konfiguration vornehmen:Or in configuration:
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Activities.UseSHA1HashForDebuggerSymbols=true" />
</runtime>
</configuration>
BereichScope GeringMinor
VersionVersion 4.84.8
TypType NeuzuweisungRetargeting

Änderung von XOML-Workflowdefinition und ndSqlTrackingService-Cacheschlüssel von MD5 in SHA256Workflow XOML definition and SqlTrackingService cache keys changed from MD5 to SHA256

DetailsDetails Die Workflowlaufzeit verwaltet einen Cache mit in XOML definierten Workflowdefinitionen.The Workflow Runtime in keeps a cache of workflow definitions defined in XOML. SqlTrackingService verwaltet ebenfalls einen Cache, der mit Zeichenfolgen verschlüsselt ist.The SqlTrackingService also keeps a cache that is keyed by strings. Diese Caches werden nach Werten verschlüsselt, die den Hashwert der Prüfsumme enthalten.These caches are keyed by values that include checksum hash value. In .NET Framework 4.7.2 und früheren Versionen wird beim Hashing der Prüfsumme der MD5-Algorithmus verwendet, der auf Systemen, auf den FIPS aktiviert ist, Probleme verursacht hat.In the .NET Framework 4.7.2 and earlier versions, this checksum hashing used the MD5 algorithm, which caused issues on FIPS-enabled systems. Ab .NET Framework 4.8 wird der Algorithmus SHA256 verwendet. Diese Änderung bringt kein Kompatibilitätsproblem mit sich, da die Werte bei jedem Start von Workflowlaufzeit und SqlTrackingService neu berechnet werden.Starting with the .NET Framework 4.8, the algorithm used is SHA256.There shouldn't be an compatability issue with this change because the values are recalculated each time the Workflow Runtime and SqlTrackingService is started. Kunden haben jedoch die Möglichkeit, ggf. zur Verwendung des älteren Hashalgorithmus zurückzukehren.However, we have provided quirks to allow customers to revert back to usage of the legacy hashing algorithm, if necessary.
VorschlagSuggestion Wenn diese Änderung beim Ausführen von Workflows ein Problem darstellt, legen Sie einen oder beide AppContext-Switches auf „True“ fest:If this change presents a problem when executing workflows, try setting one or both of the AppContext switches:
  • "Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey""Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey" to true.
  • "Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey""Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey" to true.
In Code:In code:
System.AppContext.SetSwitch("Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey", true);
System.AppContext.SetSwitch("Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKey", true);
Oder in der Konfigurationsdatei der Anwendung, die das WorkflowRuntime-Objekt erstellt:Or in the configuration file (this needs to be in the config file for the application that is creating the WorkflowRuntime object):
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Workflow.Runtime.UseLegacyHashForWorkflowDefinitionDispenserCacheKey=true" />
<AppContextSwitchOverrides value="Switch.System.Workflow.Runtime.UseLegacyHashForSqlTrackingCacheKeytrue" />
</runtime>
</configuration>
BereichScope GeringMinor
VersionVersion 4.84.8
TypType NeuzuweisungRetargeting

Änderung der Workflowprüfsummen der XOML-Datei von MD5 in SHA256Workflow XOML file checksums changed from MD5 to SHA256

DetailsDetails Um das Debuggen von XOML-basierten Workflows mit Visual Studio zu unterstützen, wird beim Erstellen von Workflowprojekten, die XOML-Dateien enthalten, eine Prüfsumme des Inhalts der XOML-Datei in den als WorkflowMarkupSourceAttribute.MD5Digest-Wert erzeugten Code aufgenommen.To support debugging XOML-based workflows with Visual Studio, when workflow projects containing XOML files build, a checksum of the contents of the XOML file is included in the code generated as a WorkflowMarkupSourceAttribute.MD5Digest value. In .NET Framework 4.7.2 und früheren Versionen wird beim Hashing der Prüfsumme der MD5-Algorithmus verwendet, der auf Systemen, auf den FIPS aktiviert ist, Probleme verursacht hat.In the .NET Framework 4.7.2 and earlier versions, this checksum hashing used the MD5 algorithm, which caused issues on FIPS-enabled systems. Ab .NET Framework 4.8 wird der SHA256-Algorithmus verwendet.Starting with the .NET Framework 4.8, the algorithm used is SHA256. Um mit dem WorkflowMarkupSourceAttribute.MD5Digest kompatibel zu sein, werden nur die ersten 16 Bytes der erzeugten Prüfsumme verwendet. Dies kann zu Problemen beim Debuggen führen.To be compatibile with the WorkflowMarkupSourceAttribute.MD5Digest, only the first 16 bytes of the generated checksum are used.This may cause problems during debugging. Sie müssen das Projekt ggf. neu erstellen.You may need to re-build your project.
VorschlagSuggestion Wenn die Neuerstellung Ihres Projekts das Problem nicht löst, versuchen Sie, den AppContext-Schalter "Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum" auf TRUE zu setzen. In Code:If re-building your project does not solve the problem, try setting the AppContext switch "Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum" to true.In code:
System.AppContext.SetSwitch("Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum", true);
Oder in einer Konfigurationsdatei (diese muss sich in MSBuild.exe.config für die von Ihnen verwendete MSBuild.exe befinden):Or in a configuration file (this needs to be in MSBuild.exe.config for the MSBuild.exe that you are using):
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Workflow.ComponentModel.UseLegacyHashForXomlFileChecksum=true" />
</runtime>
</configuration>
BereichScope GeringMinor
VersionVersion 4.84.8
TypType NeuzuweisungRetargeting