Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / DisplayInformation.cs / 1305376 / DisplayInformation.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Windows.Forms { using Microsoft.Win32; using System.Security; using System.Security.Permissions; internal class DisplayInformation { private static bool highContrast; //whether we are under hight contrast mode private static bool lowRes; //whether we are under low resolution mode private static bool isTerminalServerSession; //whether this application is run on a terminal server (remote desktop) private static bool highContrastSettingValid; //indicates whether the high contrast setting is correct private static bool lowResSettingValid; //indicates whether the low resolution setting is correct private static bool terminalSettingValid; //indicates whether the terminal server setting is correct private static short bitsPerPixel; private static bool dropShadowSettingValid; private static bool dropShadowEnabled; private static bool menuAccessKeysUnderlinedValid; private static bool menuAccessKeysUnderlined; static DisplayInformation() { SystemEvents.UserPreferenceChanging += new UserPreferenceChangingEventHandler(UserPreferenceChanging); SystemEvents.DisplaySettingsChanging += new EventHandler(DisplaySettingsChanging); } public static short BitsPerPixel { get { if (bitsPerPixel == 0) { // we used to iterate through all screens, but // for some reason unused screens can temparily appear // in the AllScreens collection - we would honor the display // setting of an unused screen. // According to EnumDisplayMonitors, a primary screen check should be sufficient bitsPerPixel = (short)Screen.PrimaryScreen.BitsPerPixel; } return bitsPerPixel; } } //////tests to see if the monitor is in low resolution mode (8-bit color depth or less). /// public static bool LowResolution { get { if (lowResSettingValid && !lowRes) { return lowRes; } // dont cache if we're in low resolution. lowRes = BitsPerPixel <= 8; lowResSettingValid = true; return lowRes; } } //////tests to see if we are under high contrast mode /// public static bool HighContrast { get { if (highContrastSettingValid) { return highContrast; } highContrast = SystemInformation.HighContrast; highContrastSettingValid = true; return highContrast; } } public static bool IsDropShadowEnabled { get { if (dropShadowSettingValid) { return dropShadowEnabled; } dropShadowEnabled = SystemInformation.IsDropShadowEnabled; dropShadowSettingValid = true; return dropShadowEnabled; } } //////test to see if we are under terminal server mode /// public static bool TerminalServer { get { if (terminalSettingValid) { return isTerminalServerSession; } isTerminalServerSession = SystemInformation.TerminalServerSession; terminalSettingValid = true; return isTerminalServerSession; } } // return if mnemonic underlines should always be there regardless of ALT public static bool MenuAccessKeysUnderlined { get { if (menuAccessKeysUnderlinedValid) { return menuAccessKeysUnderlined; } menuAccessKeysUnderlined = SystemInformation.MenuAccessKeysUnderlined; menuAccessKeysUnderlinedValid = true; return menuAccessKeysUnderlined; } } //////event handler for change in display setting /// private static void DisplaySettingsChanging(object obj, EventArgs ea) { highContrastSettingValid = false; lowResSettingValid = false; terminalSettingValid = false; dropShadowSettingValid = false; menuAccessKeysUnderlinedValid = false; } //////event handler for change in user preference /// private static void UserPreferenceChanging(object obj, UserPreferenceChangingEventArgs e) { highContrastSettingValid = false; lowResSettingValid = false; terminalSettingValid = false; dropShadowSettingValid = false; bitsPerPixel = 0; if (e.Category == UserPreferenceCategory.General) { menuAccessKeysUnderlinedValid =false; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Windows.Forms { using Microsoft.Win32; using System.Security; using System.Security.Permissions; internal class DisplayInformation { private static bool highContrast; //whether we are under hight contrast mode private static bool lowRes; //whether we are under low resolution mode private static bool isTerminalServerSession; //whether this application is run on a terminal server (remote desktop) private static bool highContrastSettingValid; //indicates whether the high contrast setting is correct private static bool lowResSettingValid; //indicates whether the low resolution setting is correct private static bool terminalSettingValid; //indicates whether the terminal server setting is correct private static short bitsPerPixel; private static bool dropShadowSettingValid; private static bool dropShadowEnabled; private static bool menuAccessKeysUnderlinedValid; private static bool menuAccessKeysUnderlined; static DisplayInformation() { SystemEvents.UserPreferenceChanging += new UserPreferenceChangingEventHandler(UserPreferenceChanging); SystemEvents.DisplaySettingsChanging += new EventHandler(DisplaySettingsChanging); } public static short BitsPerPixel { get { if (bitsPerPixel == 0) { // we used to iterate through all screens, but // for some reason unused screens can temparily appear // in the AllScreens collection - we would honor the display // setting of an unused screen. // According to EnumDisplayMonitors, a primary screen check should be sufficient bitsPerPixel = (short)Screen.PrimaryScreen.BitsPerPixel; } return bitsPerPixel; } } //////tests to see if the monitor is in low resolution mode (8-bit color depth or less). /// public static bool LowResolution { get { if (lowResSettingValid && !lowRes) { return lowRes; } // dont cache if we're in low resolution. lowRes = BitsPerPixel <= 8; lowResSettingValid = true; return lowRes; } } //////tests to see if we are under high contrast mode /// public static bool HighContrast { get { if (highContrastSettingValid) { return highContrast; } highContrast = SystemInformation.HighContrast; highContrastSettingValid = true; return highContrast; } } public static bool IsDropShadowEnabled { get { if (dropShadowSettingValid) { return dropShadowEnabled; } dropShadowEnabled = SystemInformation.IsDropShadowEnabled; dropShadowSettingValid = true; return dropShadowEnabled; } } //////test to see if we are under terminal server mode /// public static bool TerminalServer { get { if (terminalSettingValid) { return isTerminalServerSession; } isTerminalServerSession = SystemInformation.TerminalServerSession; terminalSettingValid = true; return isTerminalServerSession; } } // return if mnemonic underlines should always be there regardless of ALT public static bool MenuAccessKeysUnderlined { get { if (menuAccessKeysUnderlinedValid) { return menuAccessKeysUnderlined; } menuAccessKeysUnderlined = SystemInformation.MenuAccessKeysUnderlined; menuAccessKeysUnderlinedValid = true; return menuAccessKeysUnderlined; } } //////event handler for change in display setting /// private static void DisplaySettingsChanging(object obj, EventArgs ea) { highContrastSettingValid = false; lowResSettingValid = false; terminalSettingValid = false; dropShadowSettingValid = false; menuAccessKeysUnderlinedValid = false; } //////event handler for change in user preference /// private static void UserPreferenceChanging(object obj, UserPreferenceChangingEventArgs e) { highContrastSettingValid = false; lowResSettingValid = false; terminalSettingValid = false; dropShadowSettingValid = false; bitsPerPixel = 0; if (e.Category == UserPreferenceCategory.General) { menuAccessKeysUnderlinedValid =false; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LocationSectionRecord.cs
- GeneralTransform.cs
- DataBinding.cs
- SAPIEngineTypes.cs
- TextEffect.cs
- HierarchicalDataBoundControlAdapter.cs
- Oid.cs
- SQLRoleProvider.cs
- Msec.cs
- XmlWrappingReader.cs
- SupportingTokenSecurityTokenResolver.cs
- RightsManagementEncryptionTransform.cs
- TextMetrics.cs
- SpeakProgressEventArgs.cs
- Char.cs
- ApplicationContext.cs
- MaxMessageSizeStream.cs
- TypographyProperties.cs
- HttpProfileGroupBase.cs
- SudsCommon.cs
- AnnotationResourceChangedEventArgs.cs
- Splitter.cs
- XmlWrappingWriter.cs
- ImageIndexConverter.cs
- ForeignConstraint.cs
- ManualResetEventSlim.cs
- JsonStringDataContract.cs
- ActivityStateRecord.cs
- LinqToSqlWrapper.cs
- ControlBindingsCollection.cs
- SelectionProviderWrapper.cs
- CorrelationService.cs
- XmlWellformedWriter.cs
- SkipStoryboardToFill.cs
- AudienceUriMode.cs
- FontTypeConverter.cs
- DataListItem.cs
- CompilerGeneratedAttribute.cs
- SpeakCompletedEventArgs.cs
- PropertyManager.cs
- SystemColors.cs
- RadioButtonBaseAdapter.cs
- MDIClient.cs
- AuthorizationRuleCollection.cs
- ClientFormsAuthenticationMembershipProvider.cs
- AssemblyEvidenceFactory.cs
- PropertiesTab.cs
- PolygonHotSpot.cs
- NativeMethods.cs
- DeliveryStrategy.cs
- OrderedDictionary.cs
- Message.cs
- XPathNodeHelper.cs
- XsltArgumentList.cs
- XmlSchemaExternal.cs
- DayRenderEvent.cs
- AudioSignalProblemOccurredEventArgs.cs
- NumericPagerField.cs
- TreeNodeEventArgs.cs
- WebHeaderCollection.cs
- ThemeableAttribute.cs
- WindowsNonControl.cs
- LinkArea.cs
- Int32CollectionValueSerializer.cs
- LinkButton.cs
- HttpHandlersSection.cs
- SectionXmlInfo.cs
- ActiveXHelper.cs
- DataSetUtil.cs
- KnownIds.cs
- PropertyDescriptorGridEntry.cs
- ResponseStream.cs
- ControlCachePolicy.cs
- BufferAllocator.cs
- BamlRecords.cs
- FileSystemInfo.cs
- SyndicationElementExtension.cs
- StoreContentChangedEventArgs.cs
- TransformProviderWrapper.cs
- BackStopAuthenticationModule.cs
- ConfigurationManagerInternalFactory.cs
- GridViewHeaderRowPresenter.cs
- FontStretchConverter.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- TableItemProviderWrapper.cs
- ClientData.cs
- ProcessHostConfigUtils.cs
- ConfigurationElement.cs
- HybridDictionary.cs
- codemethodreferenceexpression.cs
- MailMessageEventArgs.cs
- LogManagementAsyncResult.cs
- DataContractSerializer.cs
- CharUnicodeInfo.cs
- LambdaCompiler.Logical.cs
- SelectedCellsChangedEventArgs.cs
- ClientConfigurationHost.cs
- WindowsSecurityTokenAuthenticator.cs
- Animatable.cs
- BaseValidator.cs