Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / WinForms / Managed / System / WinForms / DisplayInformation.cs / 1 / 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 = 0; 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 = 0; 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
- FontStretches.cs
- RectangleConverter.cs
- Internal.cs
- PersistNameAttribute.cs
- NullableBoolConverter.cs
- EndOfStreamException.cs
- StatusBarPanel.cs
- QilName.cs
- FtpRequestCacheValidator.cs
- Panel.cs
- ScrollChrome.cs
- EditorServiceContext.cs
- DataServiceHostWrapper.cs
- FixedSOMPage.cs
- TextSyndicationContent.cs
- NetCodeGroup.cs
- CodeMemberEvent.cs
- HasCopySemanticsAttribute.cs
- IItemContainerGenerator.cs
- SqlDataSourceEnumerator.cs
- DataGridViewControlCollection.cs
- TransformerInfo.cs
- Stopwatch.cs
- WriterOutput.cs
- MimePart.cs
- LoadWorkflowByInstanceKeyCommand.cs
- SamlDoNotCacheCondition.cs
- ExpressionVisitorHelpers.cs
- SystemFonts.cs
- XmlSchemaSequence.cs
- SqlCacheDependency.cs
- DynamicVirtualDiscoSearcher.cs
- DynamicDataExtensions.cs
- DoubleUtil.cs
- ConfigurationCollectionAttribute.cs
- CompilerCollection.cs
- TripleDES.cs
- Adorner.cs
- AccessDataSource.cs
- Terminate.cs
- ClusterRegistryConfigurationProvider.cs
- KeyConverter.cs
- XmlILModule.cs
- Validator.cs
- TableChangeProcessor.cs
- TemplateComponentConnector.cs
- BaseResourcesBuildProvider.cs
- ToolboxCategory.cs
- LoadedOrUnloadedOperation.cs
- WebBrowserUriTypeConverter.cs
- ExtractorMetadata.cs
- StringUtil.cs
- DeploymentSectionCache.cs
- MSAAWinEventWrap.cs
- WrappedIUnknown.cs
- WebResourceUtil.cs
- ListManagerBindingsCollection.cs
- XmlSchema.cs
- ProviderConnectionPoint.cs
- DataBinding.cs
- WebPartTracker.cs
- CqlBlock.cs
- SudsParser.cs
- SchemaElementLookUpTable.cs
- ContractMapping.cs
- ExceptionUtil.cs
- XmlCompatibilityReader.cs
- ExceptionRoutedEventArgs.cs
- ScaleTransform3D.cs
- PathFigureCollectionValueSerializer.cs
- SrgsSemanticInterpretationTag.cs
- ManipulationLogic.cs
- XXXInfos.cs
- XmlValueConverter.cs
- XamlInt32CollectionSerializer.cs
- ToolStripPanelRow.cs
- RSAPKCS1SignatureFormatter.cs
- RepeaterItemCollection.cs
- XhtmlBasicCommandAdapter.cs
- DockAndAnchorLayout.cs
- Evidence.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- ActionFrame.cs
- DSASignatureFormatter.cs
- ParameterSubsegment.cs
- StringSorter.cs
- EnumerableCollectionView.cs
- DivideByZeroException.cs
- sqlinternaltransaction.cs
- GroupBox.cs
- DuplexSecurityProtocolFactory.cs
- XmlAnyAttributeAttribute.cs
- MenuCommands.cs
- WindowsListViewItem.cs
- DependencyPropertyAttribute.cs
- BinaryFormatter.cs
- WebPartConnection.cs
- PrimitiveSchema.cs
- PagesSection.cs
- DetailsViewModeEventArgs.cs