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
- ApplicationInfo.cs
- BCryptNative.cs
- SafeArrayRankMismatchException.cs
- XmlSerializerAssemblyAttribute.cs
- GenericTypeParameterBuilder.cs
- EventProxy.cs
- StringConverter.cs
- DataGridCaption.cs
- BitConverter.cs
- Vector3DKeyFrameCollection.cs
- NullableDecimalAverageAggregationOperator.cs
- DashStyles.cs
- ClosableStream.cs
- _Win32.cs
- Button.cs
- TargetException.cs
- SimpleFieldTemplateUserControl.cs
- ClientRoleProvider.cs
- GroupPartitionExpr.cs
- AtomMaterializer.cs
- WebBrowserUriTypeConverter.cs
- TextSegment.cs
- BreakSafeBase.cs
- DataFieldConverter.cs
- VBCodeProvider.cs
- VisualTreeUtils.cs
- ProcessModuleCollection.cs
- ObjectAnimationUsingKeyFrames.cs
- SafeFindHandle.cs
- SqlServices.cs
- Monitor.cs
- Publisher.cs
- OracleLob.cs
- PerformanceCounterCategory.cs
- ResourcePermissionBaseEntry.cs
- PropertyValueChangedEvent.cs
- AutomationElementCollection.cs
- isolationinterop.cs
- _NegoState.cs
- PathSegmentCollection.cs
- MultiDataTrigger.cs
- DateTimeConstantAttribute.cs
- HtmlUtf8RawTextWriter.cs
- PageAsyncTask.cs
- Unit.cs
- RemoteWebConfigurationHost.cs
- Form.cs
- DecimalStorage.cs
- CommonXSendMessage.cs
- PropertyGridEditorPart.cs
- XmlQuerySequence.cs
- DashStyle.cs
- StringResourceManager.cs
- DirectoryLocalQuery.cs
- SchemaTypeEmitter.cs
- Label.cs
- Win32.cs
- RootAction.cs
- IISMapPath.cs
- X509Utils.cs
- ArgIterator.cs
- ValidationErrorEventArgs.cs
- SystemFonts.cs
- base64Transforms.cs
- HwndSourceParameters.cs
- RSAPKCS1SignatureDeformatter.cs
- RegionData.cs
- Opcode.cs
- MetaChildrenColumn.cs
- WsdlInspector.cs
- DesignDataSource.cs
- Buffer.cs
- RNGCryptoServiceProvider.cs
- XmlSchemaImport.cs
- ComponentGlyph.cs
- TextParentUndoUnit.cs
- SBCSCodePageEncoding.cs
- ContentElementAutomationPeer.cs
- SQLBinary.cs
- SafeArrayTypeMismatchException.cs
- QilXmlReader.cs
- RepeaterItem.cs
- SetterBase.cs
- Exceptions.cs
- FileClassifier.cs
- DesignerView.Commands.cs
- SystemInfo.cs
- XmlAnyElementAttribute.cs
- MasterPage.cs
- PersonalizationStateQuery.cs
- EntityContainerRelationshipSetEnd.cs
- BinaryFormatterWriter.cs
- ServiceProviders.cs
- SafeHandles.cs
- SchemaNames.cs
- CodeBinaryOperatorExpression.cs
- ReflectionTypeLoadException.cs
- DataBindingCollection.cs
- DataGridViewSelectedRowCollection.cs
- WebBrowserNavigatedEventHandler.cs