Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TableLayoutRowStyleCollection.cs
- SendSecurityHeaderElementContainer.cs
- HttpException.cs
- BitmapEffectRenderDataResource.cs
- JsonFormatWriterGenerator.cs
- ObjectQueryExecutionPlan.cs
- RegexMatch.cs
- __Error.cs
- RowBinding.cs
- DesignerActionKeyboardBehavior.cs
- WebPartManager.cs
- UmAlQuraCalendar.cs
- ValidationErrorInfo.cs
- FreezableOperations.cs
- DataListItemEventArgs.cs
- BaseDataBoundControlDesigner.cs
- ObjectParameterCollection.cs
- BulletedList.cs
- ConnectionManagementSection.cs
- webbrowsersite.cs
- XmlEventCache.cs
- sortedlist.cs
- GridSplitterAutomationPeer.cs
- UnsafeNativeMethodsPenimc.cs
- HijriCalendar.cs
- ScrollBar.cs
- PowerModeChangedEventArgs.cs
- CTreeGenerator.cs
- QueryExpression.cs
- UserPreferenceChangingEventArgs.cs
- ScriptingAuthenticationServiceSection.cs
- Keywords.cs
- TrackingMemoryStreamFactory.cs
- TreeNodeEventArgs.cs
- SqlRetyper.cs
- CacheMemory.cs
- ValidationUtility.cs
- HostingEnvironmentSection.cs
- EntityContainerEmitter.cs
- SafeLibraryHandle.cs
- DataServices.cs
- ControlPager.cs
- PaintValueEventArgs.cs
- GridViewColumnHeader.cs
- _AuthenticationState.cs
- DateTimeUtil.cs
- CookieParameter.cs
- ToolStripSystemRenderer.cs
- ProxyWebPartManager.cs
- WebPartEditorOkVerb.cs
- BoundPropertyEntry.cs
- LockedBorderGlyph.cs
- DataTableTypeConverter.cs
- ProfilePropertySettings.cs
- UnsafePeerToPeerMethods.cs
- ContractType.cs
- Transform.cs
- ZipIORawDataFileBlock.cs
- HttpApplicationFactory.cs
- ErrorRuntimeConfig.cs
- TimeoutException.cs
- Ray3DHitTestResult.cs
- SuppressMessageAttribute.cs
- ApplicationId.cs
- NativeCompoundFileAPIs.cs
- SafeProcessHandle.cs
- SpeechSynthesizer.cs
- Formatter.cs
- IPEndPointCollection.cs
- SetterBaseCollection.cs
- DocumentsTrace.cs
- XslAst.cs
- TemplateContent.cs
- BindingCompleteEventArgs.cs
- MultiDataTrigger.cs
- HttpRawResponse.cs
- SetterBase.cs
- ModelTreeEnumerator.cs
- XslCompiledTransform.cs
- DataGridViewSelectedRowCollection.cs
- ObjectDataSourceSelectingEventArgs.cs
- ThreadAbortException.cs
- InputLanguage.cs
- ViewStateModeByIdAttribute.cs
- TraceContextEventArgs.cs
- Vector3DAnimationBase.cs
- TransportContext.cs
- AnnotationAdorner.cs
- DataShape.cs
- ExchangeUtilities.cs
- CheckBoxPopupAdapter.cs
- MouseGestureConverter.cs
- MembershipAdapter.cs
- ToolStripRenderEventArgs.cs
- ItemsControl.cs
- Figure.cs
- BezierSegment.cs
- UxThemeWrapper.cs
- unsafeIndexingFilterStream.cs
- MsmqIntegrationChannelFactory.cs