Ommåla ändringar för migrering från .NET Framework 4.7 till 4.7.1
- (4.0 | 4.5)
- (4.0 | 4.5.1)
- (4.0 | 4.5.2)
- (4.0 | 4.6)
- (4.0 | 4.6.1)
- (4.0 | 4.6.2)
- (4.0 | 4.7)
- (4.0 | 4.7.1)
- (4.0 | 4.7.2)
- (4.0 | 4.8)
- (4.5 | 4.5.1)
- (4.5 | 4.5.2)
- (4.5 | 4.6)
- (4.5 | 4.6.1)
- (4.5 | 4.6.2)
- (4.5 | 4.7)
- (4.5 | 4.7.1)
- (4.5 | 4.7.2)
- (4.5 | 4.8)
- (4.5.1 | 4.5.2)
- (4.5.1 | 4.6)
- (4.5.1 | 4.6.1)
- (4.5.1 | 4.6.2)
- (4.5.1 | 4.7)
- (4.5.1 | 4.7.1)
- (4.5.1 | 4.7.2)
- (4.5.2 | 4.6)
- (4.5.2 | 4.6.1)
- (4.5.2 | 4.6.2)
- (4.5.2 | 4.7)
- (4.5.2 | 4.7.1)
- (4.5.2 | 4.7.2)
- (4.5.2 | 4.8)
- (4.6 | 4.6.1)
- (4.6 | 4.6.2)
- (4.6 | 4.7)
- (4.6 | 4.7.1)
- (4.6 | 4.7.2)
- (4.6 | 4.8)
- (4.6.1 | 4.6.2)
- (4.6.1 | 4.7)
- (4.6.1 | 4.7.1)
- (4.6.1 | 4.7.2)
- (4.6.1 | 4.8)
- (4.6.2 | 4.7)
- (4.6.2 | 4.7.1)
- (4.6.2 | 4.7.2)
- (4.6.2 | 4.8)
- (4.7 | 4.7.1)
- (4.7 | 4.7.2)
- (4.7 | 4.8)
- (4.7.1 | 4.7.2)
- (4.7.1 | 4.8)
- (4.7.2 | 4.8)
Om du migrerar från .NET Framework 4.7 till 4.7.1 kan du läsa följande avsnitt om programkompatibilitetsproblem som kan påverka din app:
ASP.NET
ASP.NET förbättringar av tillgängligheten i .NET Framework 4.7.1
Information
Från och med .NET Framework 4.7.1 har ASP.NET förbättrat hur ASP.NET Web Controls fungerar med hjälpmedelsteknik i Visual Studio för att bättre stödja ASP.NET kunder. Dessa inkluderar följande ändringar:
- Ändringar för att implementera saknade UI-hjälpmedelsmönster i kontroller, till exempel dialogrutan Lägg till fält i guiden Informationsvy eller dialogrutan Konfigurera ListView i ListView-guiden.
- Ändringar för att förbättra visningen i högkontrastläge, till exempel Redigeraren för dataväxlingsfält.
- Ändringar för att förbättra tangentbordsnavigeringsfunktionerna för kontroller, till exempel dialogrutan Fält i guiden Redigera sidfält i DataPager-kontrollen, dialogrutan Konfigurera ObjectContext eller dialogrutan Konfigurera dataval i guiden Konfigurera datakälla.
Förslag
Så här väljer du in eller bort dessa ändringar För att Visual Studio Designer ska kunna dra nytta av dessa ändringar måste den köras på .NET Framework 4.7.1 eller senare. Webbprogrammet kan dra nytta av dessa ändringar på något av följande sätt:
- Installera Visual Studio 2017 15.3 eller senare, som stöder de nya hjälpmedelsfunktionerna med följande AppContext-växel som standard.
- Avregistrera dig från äldre hjälpmedelsbeteenden genom att lägga till
Switch.UseLegacyAccessibilityFeaturesAppContext-växeln<runtime>i avsnittet i devenv.exe.config-filen och ställa in den påfalse, som i följande exempel visas.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
...
<!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true/false;key2=true/false' -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false" />
...
</runtime>
</configuration>
Program som riktar sig till .NET Framework 4.7.1 eller senare och vill bevara det äldre hjälpmedelsbeteendet kan välja att använda äldre hjälpmedelsfunktioner genom att uttryckligen ange den här AppContext-växeln till true.
| Name | Värde |
|---|---|
| Omfång | Mindre |
| Version | 4.7.1 |
| Typ | Ommåla om |
Kärna
SerialPort-bakgrundstrådsund undantag
Information
Bakgrundstrådar som skapats med SerialPort strömmar avslutar inte längre processen när OS-undantag genereras.
I program som riktar sig mot .NET Framework 4.7 och tidigare versioner avslutas en process när ett operativsystemundatag utlöses på en bakgrundstråd som skapats med en SerialPort dataström.
I program som riktar sig mot .NET Framework 4.7.1 eller en senare version väntar bakgrundstrådar på OS-händelser relaterade till den aktiva serieporten och kan krascha i vissa fall, till exempel plötslig borttagning av serieporten.
Förslag
För appar som riktar sig mot .NET Framework 4.7.1 kan du välja bort undantagshanteringen om det inte är önskvärt genom att lägga till följande i <runtime> avsnittet i app.config filen:
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.Ports.DoNotCatchSerialStreamThreadExceptions=true" />
</runtime>
För appar som riktar sig mot tidigare versioner av .NET Framework men som körs på .NET Framework 4.7.1 eller senare kan du välja undantagshantering genom att lägga till följande i <runtime> avsnittet i app.config filen:
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.Ports.DoNotCatchSerialStreamThreadExceptions=false" />
</runtime>
| Name | Värde |
|---|---|
| Omfång | Mindre |
| Version | 4.7.1 |
| Typ | Ommåla om |
Berörda API:er
ServiceBase sprider inte OnStart-undantag
Information
I .NET Framework 4.7 och tidigare versioner sprids inte undantag som genereras vid tjänststart till anroparen för ServiceBase.Run.
Från och med program som är inriktade på .NET Framework 4.7.1 sprids undantag till ServiceBase.Run för tjänster som inte startar.
Förslag
Vid tjänststart, om det finns ett undantag, sprids undantaget. Detta bör hjälpa dig att diagnostisera fall där tjänster inte kan startas.
Om det här beteendet är oönskat kan du välja bort det genom att lägga till följande AppContextSwitchOverrides element i runtime avsnittet i programkonfigurationsfilen:
<AppContextSwitchOverrides value="Switch.System.ServiceProcess.DontThrowExceptionsOnStart=true" />
Om programmet har en tidigare version som mål än 4.7.1 men du vill ha det här beteendet lägger du till följande AppContextSwitchOverrides element i runtime avsnittet i programkonfigurationsfilen:
<AppContextSwitchOverrides value="Switch.System.ServiceProcess.DontThrowExceptionsOnStart=false" />
| Name | Värde |
|---|---|
| Omfång | Mindre |
| Version | 4.7.1 |
| Typ | Ommåla |
Berörda API:er
Säkerhet
Standardalgoritmerna SignedXML och SignedXMS har ändrats till SHA256
Information
I .NET Framework 4.7 och tidigare är SignedXML och SignedCMS som standard SHA1 för vissa åtgärder. Från och med .NET Framework 4.7.1 är SHA256 aktiverat som standard för dessa åtgärder. Den här ändringen är nödvändig eftersom SHA1 inte längre anses vara säker.
Förslag
Det finns två nya kontextväxlingsvärden för att styra om SHA1 (osäker) eller SHA256 används som standard:
- Switch.System.Security.Cryptography.Xml. UseInsecureHashAlgorithms
- Switch.System.Security.Cryptography.Pkcs.UseInsecureHashAlgorithms För program som är inriktade på .NET Framework 4.7.1 och senare versioner, om användningen av SHA256 är oönskad, kan du återställa standardvärdet till SHA1 genom att lägga till följande konfigurationsväxel i körningsavsnittet i appkonfigurationsfilen:
<AppContextSwitchOverrides value="Switch.System.Security.Cryptography.Xml.UseInsecureHashAlgorithms=true;Switch.System.Security.Cryptography.Pkcs.UseInsecureHashAlgorithms=true" />
För program som är inriktade på .NET Framework 4.7 och tidigare versioner kan du välja den här ändringen genom att lägga till följande konfigurationsväxel i körningsavsnittet i appkonfigurationsfilen:
<AppContextSwitchOverrides value="Switch.System.Security.Cryptography.Xml.UseInsecureHashAlgorithms=false;Switch.System.Security.Cryptography.Pkcs.UseInsecureHashAlgorithms=false" />
| Name | Värde |
|---|---|
| Omfång | Mindre |
| Version | 4.7.1 |
| Typ | Ommåla |
Berörda API:er
- System.Security.Cryptography.Pkcs.CmsSigner
- System.Security.Cryptography.Xml.SignedXml
- System.Security.Cryptography.Xml.Reference
SignedXml.GetPublicKey returnerar RSACng på net462 (eller lightup) utan att ändra på nytt
Information
Från och med .NET Framework 4.6.2 ändrades den konkreta typen av objekt som returnerades av SignedXml.GetPublicKey metoden (utan egenhet) från en CryptoServiceProvider-implementering till en Cng-implementering. Detta beror på att implementeringen har ändrats från att använda certificate.PublicKey.Key till att använda den interna certificate.GetAnyPublicKey som vidarebefordras till RSACertificateExtensions.GetRSAPublicKey.
Förslag
Från och med appar som körs på .NET Framework 4.7.1 kan du använda CryptoServiceProvider-implementeringen som används som standard i .NET Framework 4.6.1 och tidigare versioner genom att lägga till följande konfigurationsväxel i körningsavsnittet i appkonfigurationsfilen:
<AppContextSwitchOverrides value="Switch.System.Security.Cryptography.Xml.SignedXmlUseLegacyCertificatePrivateKey=true" />
| Name | Värde |
|---|---|
| Omfång | Edge |
| Version | 4.6.2 |
| Typ | Ommåla |
Berörda API:er
Windows Communication Foundation (WCF)
Förbättrad tillgänglighet för vissa .NET SDK-verktyg
Information
I .NET Framework SDK 4.7.1 har verktygen för SvcConfigEditor.exe och SvcTraceViewer.exe förbättrats genom att åtgärda olika tillgänglighetsproblem. De flesta av dessa var små problem som att ett namn inte definierades eller att vissa gränssnittsautomatiseringsmönster inte implementerades korrekt. Även om många användare inte skulle känna till dessa felaktiga värden, kommer kunder som använder hjälpmedelstekniker som skärmläsare att finna dessa SDK-verktyg mer tillgängliga. Visst ändrar dessa korrigeringar vissa tidigare beteenden, till exempel tangentbordsfokusordning. För att få alla hjälpmedelskorrigeringar i de här verktygen kan du följa app.config filen:
<runtime>
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false"/>
</runtime>
| Name | Värde |
|---|---|
| Omfång | Edge |
| Version | 4.7.1 |
| Typ | Ommåla |
Windows Forms
Hjälpmedelsförbättringar i Windows Forms kontroller
Information
Windows Forms förbättrar hur det fungerar med hjälpmedelstekniker för att bättre stödja Windows Forms kunder. Dessa inkluderar följande ändringar som börjar med .NET Framework 4.7.1:
- Ändringar för att förbättra visningen i högkontrastläge.
- Ändringar för att förbättra egenskapens webbläsarupplevelse. Förbättringar i egenskapswebbläsaren omfattar:
- Bättre tangentbordsnavigering genom de olika nedrullningsbara urvalsfönstren.
- Minskade onödiga tabbstopp.
- Bättre rapportering av kontrolltyper.
- Förbättrat skärmläsarebeteende.
- Ändringar för att implementera hjälpmedelsmönster för användargränssnitt som saknas i kontroller.
Förslag
Så här väljer du in eller ut från dessa ändringar För att programmet ska kunna dra nytta av dessa ändringar måste det köras på .NET Framework 4.7.1 eller senare. Programmet kan dra nytta av dessa ändringar på något av följande sätt:
- Den kompileras om för att rikta in sig på .NET Framework 4.7.1. Dessa hjälpmedelsändringar aktiveras som standard för Windows Forms program som är inriktade på .NET Framework 4.7.1 eller senare.
- Den väljer bort äldre hjälpmedelsbeteenden genom att lägga till följande AppContext-växel i
<runtime>avsnittet i app.config-filen och ställa in den påfalse, som i följande exempel visas.
<?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>
Program som är inriktade på .NET Framework 4.7.1 eller senare och vill bevara det äldre hjälpmedelsbeteendet kan välja att använda äldre hjälpmedelsfunktioner genom att uttryckligen ange den här AppContext-växeln till true.
Tillgänglighetsklienter kan dra nytta av nya WinForms-hjälpmedelsfunktioner med hjälp av vanliga, offentligt beskrivna anropsmönster. Dessa mönster är inte WinForms-specifika. Hjälpmedelsklienter kan till exempel anropa metoden QueryInterface i IAccessible-gränssnittet (MAAS) för att hämta ett IServiceProvider-gränssnitt. Om det här gränssnittet är tillgängligt kan klienter använda sin QueryService-metod för att begära ett IAccessibleEx-gränssnitt. Mer information finns i Använda IAccessibleEx från en klient. Från och med .NET Framework 4.7.1 är IServiceProvider och IAccessibleEx (om tillämpligt) tillgängliga för WinForms-hjälpmedelsobjekt. .NET Framework 4.7.1 lägger till stöd för följande mönster och egenskaper för användargränssnittsautomatisering:
Kontrollerna ToolStripSplitButton och ComboBox stöder mönstret Expandera/dölj.
Kontrollen ToolStripMenuItem har egenskapsvärdetControlType.MenuItemControlType .
Kontrollen ToolStripItem stöder NameProperty egenskapen och mönstretExpand/Dölj.
Kontrollen ToolStripDropDownItem stöder AccessibleEvents indikerar StateChange och NameChange när listrutan expanderas eller komprimeras.
Kontrollen ToolStripDropDownButton har egenskapsvärdet ControlType på ControlType.MenuItem.
Kontrollen DataGridViewCheckBoxCell stöder TogglePattern.
Kontrollerna NumericUpDown och DomainUpDown stöder NameProperty egenskapen och har en ControlType av ControlType.Spinner.
Förbättringar av PropertyGrid-kontrollen .NET Framework 4.7.1 lägger till följande förbättringar i PropertyBrowser-kontrollen:Knappen Information i feldialogrutan som visas när användaren anger ett felaktigt värde i PropertyGrid kontrollen har stöd för meddelandena Visa/dölj mönster, tillstånd och namnändring och en ControlType-egenskap med värdet ControlType.MenuItem.
Meddelandefönstret som visas när knappen Information i feldialogrutan är expanderad är nu tangentbordstillgänglig och tillåter Skärmläsaren att meddela innehållet i felmeddelandet.
Raderna AccessibleRole i PropertyGrid kontrollen har ändrats från "Rad" till "Cell". Cellen mappar till UIA ControlType "DataItem", vilket gör att den kan stödja lämpliga kortkommandon och Skärmläsarens meddelanden.
Kontrollraderna PropertyGrid som representerar rubrikobjekt när PropertyGrid kontrollen har en PropertySort egenskap inställd på PropertySort.Categorized har värdet ControlType-egenskapenControlType.Button.
Kontrollrader PropertyGrid som representerar rubrikobjekt när PropertyGrid kontrollen har en PropertySort egenskap inställd för att PropertySort.Categorized stödja mönstret Expandera/dölj.
Förbättrad tangentbordsnavigering mellan rutnätet och verktygsfältet ovanför det. Genom att trycka på "Skift-Tabb" väljer du nu den första knapprutan i verktygsfältet i stället för hela verktygsfältet.
PropertyGrid kontroller som visas i läget Högkontrast ritar nu en fokusrektangel runt knapptangenten som motsvarar det aktuella PropertySort egenskapsvärdet.
PropertyGrid kontroller som visas i högkontrastläge och med en PropertySort egenskap inställd på PropertySort.Categorized visar nu bakgrunden för kategorirubriker i en mycket kontrasterande färg.
PropertyGrid kontrollerna skiljer bättre mellan verktygslistobjekt med fokus och verktygslistobjekten som anger egenskapens PropertySort aktuella värde. Den här korrigeringen består av en högkontraständring och en ändring för icke-högkontrastscenarier.
PropertyGrid kontroll ToolBar objekt som anger det aktuella värdet för PropertySort egenskapen har stöd för TogglePattern.
Förbättrat stöd för Skärmläsaren för att särskilja den valda justeringen i justeringsväljaren.
När en tom PropertyGrid kontroll visas i ett formulär får den nu fokus där den tidigare inte skulle göra det.
Användning av OS-definierade färger i högkontrasttteman
- Kontrollerna Button och CheckBox med egenskapen FlatStyle inställd på FlatStyle.System, vilket är standardformatet, använder nu OS-definierade färger i högkontrasttema när de väljs. Tidigare var text- och bakgrundsfärger inte kontrasterande och svåra att läsa.
- Kontrollerna Button, CheckBox, RadioButton, Label, LinkLabeloch GroupBox med deras Enabled egenskap inställd på false använde en skuggad färg för att återge text i högkontrasttteman, vilket resulterade i låg kontrast mot bakgrunden. Nu använder dessa kontroller färgen "Inaktiverad text" som definierats av operativsystemet. Den här korrigeringen gäller för kontroller med egenskapen inställd på
FlatStyleett annat värde än FlatStyle.System. De senare kontrollerna återges av operativsystemet. - DataGridView återger nu en synlig rektangel runt innehållet i cellen som har det aktuella fokuset. Tidigare var detta inte synligt i vissa högkontrasttteman.
- ToolStripMenuItem kontroller med egenskapen Enabledinställd på false använder nu färgen "Inaktiverad text" som definierats av operativsystemet.
- ToolStripMenuItem kontroller med egenskapen Checkedinställd på true återger nu den associerade bockmarkeringen i en kontrasterande systemfärg. Tidigare var bockmarkeringsfärgen inte tillräckligt kontrasterande och inte synlig i högkontrasteman. Obs! Windows 10 har ändrat värden för vissa högkontrastsystemfärger. Windows Forms Framework baseras på Win32-ramverket. För bästa möjliga upplevelse kan du köra den senaste versionen av Windows och välja de senaste os-ändringarna genom att lägga till en app.manifest-fil i ett testprogram och avkommentera följande kod:
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
Förbättrad tangentbordsnavigering
- När en ComboBox kontroll har sin DropDownStyle egenskap inställd ComboBoxStyle.DropDownList på och är den första kontrollen i tabbordningen i formuläret visas nu en fokusrektangel när det överordnade formuläret öppnas med tangentbordet. Före den här ändringen var tangentbordsfokus på den här kontrollen, men ingen fokusindikator renderades.
Förbättrat stöd för Skärmläsaren
Kontrollen MonthCalendar har lagt till stöd för hjälpmedelstekniker för åtkomst till kontrollen, inklusive möjligheten för Skärmläsaren att läsa värdet för kontrollen när den tidigare inte kunde det.
Kontrollen CheckedListBox meddelar nu Skärmläsaren när en CheckBox.CheckState egenskap har ändrats. Tidigare fick Skärmläsaren inget meddelande och därför skulle användarna inte informeras om att CheckState egenskapen hade uppdaterats.
Kontrollen LinkLabel har ändrat det sätt på vilket skärmläsaren meddelas om texten i kontrollen. Tidigare presenterade Skärmläsaren den här texten två gånger och läste "&" symboler som verklig text även om de inte är synliga för en användare. Den duplicerade texten togs bort från Skärmläsarens meddelanden samt onödiga "&" symboler.
Kontrolltyperna DataGridViewCell rapporterar nu korrekt skrivskyddad status till Skärmläsaren och andra hjälpmedelstekniker.
Skärmläsaren kan nu läsa systemmenyn för underordnade fönster i [Multiple-Document Interface]~/docs/framework/winforms/advanced/multiple-document-interface-mdi-applications.md) program.
Skärmläsaren kan nu läsa ToolStripMenuItem kontroller med en ToolStripItem.Enabled egenskap inställd på false. Tidigare kunde Skärmläsaren inte fokusera på inaktiverade menyalternativ för att läsa innehållet.
| Name | Värde |
|---|---|
| Omfång | Större |
| Version | 4.8 |
| Typ | Ommåla |
Berörda API:er
- ToolStripDropDownButton.CreateAccessibilityInstance()
- DomainUpDown.DomainUpDownAccessibleObject.Name
- MonthCalendar.AccessibilityObject
Windows Presentation Foundation (WPF)
Hjälpmedelsförbättringar i WPF
Information
Förbättringar av högkontrast
- Kontrollens Expander fokus är nu synligt. I tidigare versioner av .NET Framework var det inte det.
- Texten i CheckBox och RadioButton kontrollerna när de väljs är nu lättare att se än i tidigare .NET Framework versioner.
- Kantlinjen för en inaktiverad ComboBox är nu samma färg som den inaktiverade texten. I tidigare versioner av .NET Framework var det inte det.
- Inaktiverade och fokuserade knappar använder nu rätt temafärg. I tidigare versioner av .NET Framework gjorde de inte det.
- Listruteknappen visas nu när en ComboBox kontrolls formatmall är inställd på ToolBar.ComboBoxStyleKey. I tidigare versioner av .NET Framework var det inte det.
- Sorteringsindikatorpilen i en DataGrid kontroll använder nu temafärger. I tidigare versioner av .NET Framework gjorde det inte det.
- Standardformatet för hyperlänkar ändras nu till rätt temafärg vid muspekaren. I tidigare versioner av .NET Framework gjorde det inte det.
- Tangentbordsfokus på alternativknappar är nu synligt. I tidigare versioner av .NET Framework var det inte det.
- Kontrollens DataGrid kryssruta använder nu de förväntade färgerna för feedback om tangentbordsfokus. I tidigare versioner av .NET Framework gjorde det inte det.
- De visuella objekten för tangentbordsfokus visas nu på ComboBox och ListBox kontroller. I tidigare versioner av .NET Framework var det inte det.
Interaktionsförbättringar för skärmläsare
- Expander kontroller meddelas nu korrekt som grupper (expandera/komprimera) av skärmläsare.
- DataGridCell kontroller meddelas nu korrekt som datarutnätcell (lokaliserad) av skärmläsare.
- Skärmläsare kommer nu att meddela namnet på en redigerbar ComboBox.
- PasswordBox kontroller inte längre meddelas som "inget objekt i vyn" av skärmläsare.
LiveRegion-stöd
Skärmläsare, till exempel Skärmläsaren, hjälper människor att förstå användargränssnittet (UI) för ett program, vanligtvis genom att beskriva användargränssnittselementet som för närvarande har fokus. Men om ett gränssnittselement ändras någonstans på skärmen och det inte har fokus kanske användaren inte informeras och missar viktig information. LiveRegions är avsedda att lösa problemet. En utvecklare kan använda dem för att informera skärmläsaren eller någon annan UI Automation klient om att en viktig ändring har gjorts i ett gränssnittselement. Skärmläsaren kan sedan bestämma hur och när användaren ska informeras om ändringen. Egenskapen LiveSetting låter också skärmläsaren veta hur viktigt det är att informera användaren om ändringen i användargränssnittet.
Förslag
Så här väljer du in eller ut från dessa ändringar
För att programmet ska kunna dra nytta av dessa ändringar måste det köras på .NET Framework 4.7.1 eller senare. Programmet kan dra nytta av dessa ändringar på något av följande sätt:
Mål .NET Framework 4.7.1. Detta är den rekommenderade metoden. Dessa hjälpmedelsändringar aktiveras som standard för WPF-program som är inriktade på .NET Framework 4.7.1 eller senare.
Den väljer bort äldre hjälpmedelsbeteenden genom att lägga till följande AppContext Switch i avsnittet i
<runtime>appkonfigurationsfilen och ställa in den påfalse, som i följande exempel visas.<?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>
Program som är inriktade på .NET Framework 4.7.1 eller senare och vill bevara det äldre hjälpmedelsbeteendet kan välja att använda äldre hjälpmedelsfunktioner genom att uttryckligen ange den här AppContext-växeln till true.
En översikt över UI-automatisering finns i UI Automation Översikt.
| Name | Värde |
|---|---|
| Omfång | Större |
| Version | 4.7.1 |
| Typ | Ommåla om |
Berörda API:er
- AutomationElementIdentifiers.LiveSettingProperty
- AutomationElementIdentifiers.LiveRegionChangedEvent
- System.Windows.Automation.AutomationLiveSetting
- AutomationProperties.LiveSettingProperty
- AutomationProperties.SetLiveSetting(DependencyObject, AutomationLiveSetting)
- AutomationProperties.GetLiveSetting(DependencyObject)
- AutomationPeer.GetLiveSettingCore()
Selector SelectionChanged-händelse och selectedValue-egenskap
Information
Från och med .NET Framework 4.7.1 Selector uppdateras alltid värdet för dess SelectedValue egenskap innan händelsen höjs SelectionChanged när dess val ändras. Detta gör egenskapen SelectedValue konsekvent med de andra markeringsegenskaperna (SelectedItem och SelectedIndex), som uppdateras innan händelsen aktiveras.
I .NET Framework 4.7 och tidigare versioner skedde uppdateringen av SelectedValue före händelsen i de flesta fall, men det hände efter händelsen om markeringsändringen orsakades av att egenskapen ändradesSelectedValue.Förslag
Appar som riktar sig mot .NET Framework 4.7.1 eller senare kan välja bort den här ändringen och använda äldre beteende genom att lägga till följande i <runtime> avsnittet i programkonfigurationsfilen:
<runtime>
<AppContextSwitchOverrides
value="Switch.System.Windows.Controls.TabControl.SelectionPropertiesCanLagBehindSelectionChangedEvent=true" />
</runtime>
Appar som är inriktade på .NET Framework 4.7 eller tidigare men som körs på .NET Framework 4.7.1 eller senare kan aktivera det nya beteendet genom att lägga till följande rad i <runtime> avsnittet i programmets .configuration-fil:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Controls.TabControl.SelectionPropertiesCanLagBehindSelectionChangedEvent=false" />
</runtime>
| Name | Värde |
|---|---|
| Omfång | Mindre |
| Version | 4.7.1 |
| Typ | Ommåla om |
Berörda API:er
TabControl SelectionChanged-händelse och egenskapen SelectedContent
Information
Från och med .NET Framework 4.7.1 TabControl uppdateras värdet för dess SelectedContent egenskap innan händelsen aktiveras SelectionChanged när dess val ändras. I .NET Framework 4.7 och tidigare versioner skedde uppdateringen av SelectedContent efter händelsen.
Förslag
Appar som riktar sig mot .NET Framework 4.7.1 eller senare kan välja bort den här ändringen och använda äldre beteende genom att lägga till följande i <runtime> avsnittet i programkonfigurationsfilen:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Controls.TabControl.SelectionPropertiesCanLagBehindSelectionChangedEvent=true" />
</runtime>
Appar som är inriktade på .NET Framework 4.7 eller tidigare men som körs på .NET Framework 4.7.1 eller senare kan aktivera det nya beteendet genom att lägga till följande rad i <runtime> avsnittet i programmets .configuration-fil:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Controls.TabControl.SelectionPropertiesCanLagBehindSelectionChangedEvent=false" />
</runtime>
| Name | Värde |
|---|---|
| Omfång | Mindre |
| Version | 4.7.1 |
| Typ | Ommåla om |
Berörda API:er
Standardhashalgoritmen för WPF PackageDigitalSignatureManager är nu SHA256
Information
System.IO.Packaging.PackageDigitalSignatureManager tillhandahåller funktioner för digitala signaturer i förhållande till WPF-paket. I .NET Framework 4.7 och tidigare versioner var standardalgoritmen (PackageDigitalSignatureManager.DefaultHashAlgorithm) som användes för signering av delar av ett paket SHA1. På grund av de senaste säkerhetsproblemen med SHA1 har det här standardvärdet ändrats till SHA256 från och med .NET Framework 4.7.1. Den här ändringen påverkar alla paketsigneringar, inklusive XPS-dokument.
Förslag
En utvecklare som vill använda den här ändringen när den riktar in sig på en ramverksversion under .NET Framework 4.7.1 eller en utvecklare som behöver den tidigare funktionen med inriktning på .NET Framework 4.7.1 eller senare kan ange följande AppContext-flagga på lämpligt sätt. Värdet true resulterar i att SHA1 används som standardalgoritm. false resulterar i SHA256.
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.MS.Internal.UseSha1AsDefaultHashAlgorithmForDigitalSignatures=true"/>
</runtime>
</configuration>
| Name | Värde |
|---|---|
| Omfång | Edge |
| Version | 4.7.1 |
| Typ | Ommåla om |
Berörda API:er
Windows Workflow Foundation (WF)
Hjälpmedelsförbättringar i arbetsflödesdesignern Windows Workflow Foundation (WF)
Information
Arbetsflödesdesignern Windows Workflow Foundation (WF) förbättrar hur den fungerar med hjälpmedelstekniker. Dessa förbättringar omfattar följande ändringar:
- Tabbordningen ändras till vänster till höger och uppifrån och ned i vissa kontroller:
- Initiera korrelationsfönstret för att ange korrelationsdata InitializeCorrelation för aktiviteten
- Innehållsdefinitionsfönstret för aktiviteterna Receive, Send, SendReplyoch ReceiveReply
- Fler funktioner är tillgängliga via tangentbordet:
- När du redigerar egenskaperna för en aktivitet kan egenskapsgrupper döljas av tangentbordet första gången de fokuserar.
- Varningsikoner är nu tillgängliga via tangentbord.
- Knappen Fler egenskaper i Fönstret Egenskaper är nu tillgänglig via tangentbordet.
- Tangentbordsanvändare kan nu komma åt rubrikobjekten i fönstret Argument och variabler i arbetsflödesdesignern.
- Förbättrad synlighet för objekt med fokus, till exempel när:
- Lägga till rader i datarutnät som används av arbetsflödesdesignern och aktivitetsdesigners.
- Tabbning genom fält i aktiviteterna ReceiveReply och SendReply .
- Ange standardvärden för variabler eller argument
- Skärmläsare kan nu känna igen:
- Brytpunkter som angetts i arbetsflödesdesignern.
- Aktiviteterna FlowSwitch<T>, FlowDecisionoch CorrelationScope .
- Innehållet i Receive aktiviteten.
- Måltypen för InvokeMethod aktiviteten.
- Kombinationsrutan Undantag och avsnittet Slutligen i TryCatch aktiviteten.
- Kombinationsrutan Meddelandetyp, delningsfunktionen i fönstret Lägg till korrelationsinitierare, fönstret Innehållsdefinition och fönstret KorrelerarOn Defintion i meddelandeaktiviteterna (Receive, Send, SendReplyoch ReceiveReply).
- Tillståndsdatorövergångar och övergångsmål.
- Anteckningar och kopplingar för FlowDecision aktiviteter.
- Kontextmenyerna (högerklicka) för aktiviteter.
- Egenskapsvärderedigerarna, knappen Rensa sökning, knapparna Efter kategori och Alfabetisk sortering och dialogrutan Uttrycksredigeraren i egenskapsrutnätet.
- Zoomprocenten i arbetsflödesdesignern.
- Avgränsaren i Parallel aktiviteterna och Pick .
- Aktiviteten InvokeDelegate .
- Fönstret Välj typer för ordlisteaktiviteter (
Microsoft.Activities.AddToDictionary<TKey,TValue>,Microsoft.Activities.RemoveFromDictionary<TKey,TValue>osv.). - Fönstret Bläddra och Välj .NET-typ.
- Sökvägar i arbetsflödesdesignern.
- Användare som väljer Högkontrastt-teman ser många förbättringar i synligheten för arbetsflödesdesignern och dess kontroller, till exempel bättre kontrastförhållande mellan element och mer märkbara markeringsrutor som används för fokuselement.
Förslag
Om du har ett program med en omvärderad arbetsflödesdesigner kan ditt program dra nytta av dessa ändringar genom att utföra någon av följande åtgärder:
- Kompilera om programmet så att det riktar in sig på .NET Framework 4.7.1. Dessa hjälpmedelsändringar är aktiverade som standard.
- Om ditt program är avsett för .NET Framework 4.7 eller tidigare men körs på .NET Framework 4.7.1 kan du välja bort dessa äldre hjälpmedelsbeteenden genom att lägga till följande AppContext-växel i
<runtime>avsnittet i app.config-filen och ställa in den påfalse, som följande exempel visar.
<?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>
Program som riktar sig till .NET Framework 4.7.1 eller senare och vill bevara det äldre hjälpmedelsbeteendet kan välja att använda äldre hjälpmedelsfunktioner genom att uttryckligen ange den här AppContext-växeln till true.
| Name | Värde |
|---|---|
| Omfång | Mindre |
| Version | 4.7.1 |
| Typ | Ommåla |