Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / Primitives / ResizeGrip.cs / 1305600 / ResizeGrip.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Implements the ResizeGrip control // // History // 10/24/03 hamidm Created // //--------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Windows; using System.Windows.Threading; using System.Windows.Media; using System.Windows.Shapes; #if OLD_AUTOMATION using System.Windows.Automation.Provider; #endif namespace System.Windows.Controls.Primitives { ////// The ResizeGrip control enables the Window object to have a resize grip. This control should be /// made part of the Window's style visual tree. /// ////// /// #if OLD_AUTOMATION [Automation(AccessibilityControlType = "Thumb")] #endif public class ResizeGrip : Control { //---------------------------------------------- // // Constructors // //---------------------------------------------- #region Constructors static ResizeGrip() { DefaultStyleKeyProperty.OverrideMetadata(typeof(ResizeGrip), new FrameworkPropertyMetadata(typeof(ResizeGrip))); _dType = DependencyObjectType.FromSystemTypeInternal(typeof(ResizeGrip)); Window.IWindowServiceProperty.OverrideMetadata( typeof(ResizeGrip), new FrameworkPropertyMetadata(new PropertyChangedCallback(_OnWindowServiceChanged))); } ////// Default ResizeGrip constructor /// ////// Automatic determination of current Dispatcher. Use alternative constructor /// that accepts a Dispatcher for best performance. /// public ResizeGrip() : base() { } #endregion Constructors //---------------------------------------------- // // Private Methods // //---------------------------------------------- #region Private Methods private static void _OnWindowServiceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ResizeGrip rg = d as ResizeGrip; Debug.Assert(rg != null, "DependencyObject must be of type ResizeGrip."); rg.OnWindowServiceChanged(e.OldValue as Window, e.NewValue as Window); } ////// When IWindowService is invalidated, it means that this control is either placed into /// a window's visual tree or taken out. If we are in a new Window's visual tree, we /// want to set the reference to this object inside the Window. Window uses this /// reference in its WM_NCHITTEST code /// private void OnWindowServiceChanged(Window oldWindow, Window newWindow) { if ((oldWindow != null) && (oldWindow != newWindow)) { oldWindow.ClearResizeGripControl(this); } if (newWindow != null) { newWindow.SetResizeGripControl(this); } } #region DTypeThemeStyleKey // Returns the DependencyObjectType for the registered ThemeStyleKey's default // value. Controls will override this method to return approriate types. internal override DependencyObjectType DTypeThemeStyleKey { get { return _dType; } } private static DependencyObjectType _dType; #endregion DTypeThemeStyleKey // // This property // 1. Finds the correct initial size for the _effectiveValues store on the current DependencyObject // 2. This is a performance optimization // internal override int EffectiveValuesInitialSize { get { return 28; } } #endregion Private Methods } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Implements the ResizeGrip control // // History // 10/24/03 hamidm Created // //--------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Windows; using System.Windows.Threading; using System.Windows.Media; using System.Windows.Shapes; #if OLD_AUTOMATION using System.Windows.Automation.Provider; #endif namespace System.Windows.Controls.Primitives { ////// The ResizeGrip control enables the Window object to have a resize grip. This control should be /// made part of the Window's style visual tree. /// ////// /// #if OLD_AUTOMATION [Automation(AccessibilityControlType = "Thumb")] #endif public class ResizeGrip : Control { //---------------------------------------------- // // Constructors // //---------------------------------------------- #region Constructors static ResizeGrip() { DefaultStyleKeyProperty.OverrideMetadata(typeof(ResizeGrip), new FrameworkPropertyMetadata(typeof(ResizeGrip))); _dType = DependencyObjectType.FromSystemTypeInternal(typeof(ResizeGrip)); Window.IWindowServiceProperty.OverrideMetadata( typeof(ResizeGrip), new FrameworkPropertyMetadata(new PropertyChangedCallback(_OnWindowServiceChanged))); } ////// Default ResizeGrip constructor /// ////// Automatic determination of current Dispatcher. Use alternative constructor /// that accepts a Dispatcher for best performance. /// public ResizeGrip() : base() { } #endregion Constructors //---------------------------------------------- // // Private Methods // //---------------------------------------------- #region Private Methods private static void _OnWindowServiceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ResizeGrip rg = d as ResizeGrip; Debug.Assert(rg != null, "DependencyObject must be of type ResizeGrip."); rg.OnWindowServiceChanged(e.OldValue as Window, e.NewValue as Window); } ////// When IWindowService is invalidated, it means that this control is either placed into /// a window's visual tree or taken out. If we are in a new Window's visual tree, we /// want to set the reference to this object inside the Window. Window uses this /// reference in its WM_NCHITTEST code /// private void OnWindowServiceChanged(Window oldWindow, Window newWindow) { if ((oldWindow != null) && (oldWindow != newWindow)) { oldWindow.ClearResizeGripControl(this); } if (newWindow != null) { newWindow.SetResizeGripControl(this); } } #region DTypeThemeStyleKey // Returns the DependencyObjectType for the registered ThemeStyleKey's default // value. Controls will override this method to return approriate types. internal override DependencyObjectType DTypeThemeStyleKey { get { return _dType; } } private static DependencyObjectType _dType; #endregion DTypeThemeStyleKey // // This property // 1. Finds the correct initial size for the _effectiveValues store on the current DependencyObject // 2. This is a performance optimization // internal override int EffectiveValuesInitialSize { get { return 28; } } #endregion Private Methods } } // 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
- Brushes.cs
- LineVisual.cs
- ToolStripProgressBar.cs
- XmlHierarchyData.cs
- ColumnMap.cs
- MimeTypePropertyAttribute.cs
- TreeViewItem.cs
- QuestionEventArgs.cs
- CodeIdentifier.cs
- SqlUserDefinedTypeAttribute.cs
- Size3D.cs
- VirtualDirectoryMapping.cs
- ChtmlTextWriter.cs
- OleDbParameterCollection.cs
- MultiView.cs
- EventMappingSettings.cs
- _AuthenticationState.cs
- TypeToken.cs
- StreamProxy.cs
- RepeaterItemEventArgs.cs
- PrivilegeNotHeldException.cs
- IDReferencePropertyAttribute.cs
- SafeHandle.cs
- KeyEvent.cs
- MimeTextImporter.cs
- VideoDrawing.cs
- OraclePermission.cs
- diagnosticsswitches.cs
- SmtpNegotiateAuthenticationModule.cs
- Duration.cs
- ObjectList.cs
- SqlProvider.cs
- XmlSchemaType.cs
- XmlReflectionMember.cs
- CharacterString.cs
- XPathItem.cs
- controlskin.cs
- dataSvcMapFileLoader.cs
- DataGridBoolColumn.cs
- AmbientLight.cs
- WindowsFormsSectionHandler.cs
- CapiHashAlgorithm.cs
- UnsafeNativeMethods.cs
- SignerInfo.cs
- SqlConnectionStringBuilder.cs
- CodeDomConfigurationHandler.cs
- Package.cs
- BasicSecurityProfileVersion.cs
- OleDbParameterCollection.cs
- WorkflowInstanceQuery.cs
- ItemCollection.cs
- TemplateInstanceAttribute.cs
- Screen.cs
- Stack.cs
- ExtendedPropertyInfo.cs
- ClrProviderManifest.cs
- GridViewColumnCollection.cs
- Int32KeyFrameCollection.cs
- PromptBuilder.cs
- TreeViewCancelEvent.cs
- InstanceData.cs
- Marshal.cs
- TimeSpanConverter.cs
- ZeroOpNode.cs
- XmlSchema.cs
- CheckedPointers.cs
- TransformationRules.cs
- IndexedEnumerable.cs
- TextPattern.cs
- ImportContext.cs
- XmlMembersMapping.cs
- BmpBitmapEncoder.cs
- ProcessStartInfo.cs
- _UriSyntax.cs
- SingleTagSectionHandler.cs
- TextureBrush.cs
- MessageContractMemberAttribute.cs
- ImageMapEventArgs.cs
- Rule.cs
- InputScope.cs
- AttributedMetaModel.cs
- DefaultBinder.cs
- ByteStreamGeometryContext.cs
- HelloMessageCD1.cs
- MatrixAnimationBase.cs
- NameNode.cs
- XpsFilter.cs
- TextEditorMouse.cs
- StylusEventArgs.cs
- HtmlElementCollection.cs
- RNGCryptoServiceProvider.cs
- SystemNetHelpers.cs
- DescendantQuery.cs
- TagPrefixInfo.cs
- ProcessHostServerConfig.cs
- ReaderContextStackData.cs
- path.cs
- GridViewSelectEventArgs.cs
- EventSourceCreationData.cs
- ToolBar.cs