Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / View / ExtensionWindowResizeGrip.cs / 1305376 / ExtensionWindowResizeGrip.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation.View { using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Runtime; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; //This class is visual representation of ResizeGrip like control, which is used with ExtenstionWindows to allow //resizing. Actual resize logic is handled by ExtensionSurface class [TemplatePart(Name = "PART_ResizeGrip")] class ExtensionWindowResizeGrip : Control { public static readonly DependencyProperty IconProperty = DependencyProperty.Register("Icon", typeof(DrawingBrush), typeof(ExtensionWindowResizeGrip)); ExtensionWindow parent; ExtensionSurface surface; Point offset; [SuppressMessage(FxCop.Category.Performance, FxCop.Rule.InitializeReferenceTypeStaticFieldsInline, Justification = "Overriding metadata for dependency properties in static constructor is the way suggested by WPF")] static ExtensionWindowResizeGrip() { DefaultStyleKeyProperty.OverrideMetadata( typeof(ExtensionWindowResizeGrip), new FrameworkPropertyMetadata(typeof(ExtensionWindowResizeGrip))); } public DrawingBrush Icon { get { return (DrawingBrush)GetValue(IconProperty); } set { SetValue(IconProperty, value); } } protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) { base.OnMouseLeftButtonDown(e); if (this.parent.IsResizable) { this.Cursor = Cursors.SizeNWSE; this.offset = e.GetPosition(this); CaptureMouse(); } } protected override void OnMouseMove(MouseEventArgs args) { base.OnMouseMove(args); if (args.LeftButton == MouseButtonState.Pressed && this.IsMouseCaptured) { Point currentPosition = Mouse.GetPosition(this.parent); currentPosition.Offset(this.offset.X, this.offset.Y); Size newSize = new Size(); newSize.Width = Math.Min(Math.Max(this.parent.MinWidth, currentPosition.X), this.parent.MaxWidth); newSize.Height = Math.Min(Math.Max(this.parent.MinHeight, currentPosition.Y), this.parent.MaxHeight); System.Diagnostics.Debug.WriteLine("NewSize = (" + newSize.Width + "," + newSize.Height + ")"); this.surface.SetSize(this.parent, newSize); } } protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e) { base.OnMouseLeftButtonUp(e); Mouse.OverrideCursor = null; Mouse.Capture(null); } protected override void OnVisualParentChanged(DependencyObject oldParent) { base.OnVisualParentChanged(oldParent); if (!DesignerProperties.GetIsInDesignMode(this) && !ExtensionWindow.TryGetParentExtensionWindow(this, out this.parent, out this.surface)) { Fx.Assert("ExtensionWindowHeader cannot be used outside ExtensionWindow"); } } } } // 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
- XmlSchemaComplexContent.cs
- StylusPointDescription.cs
- Win32Native.cs
- CatalogPart.cs
- SqlUserDefinedTypeAttribute.cs
- _LocalDataStore.cs
- HybridCollection.cs
- ProgressiveCrcCalculatingStream.cs
- DurationConverter.cs
- CodeSpit.cs
- XmlnsPrefixAttribute.cs
- recordstate.cs
- WebPartsPersonalizationAuthorization.cs
- RedBlackList.cs
- DWriteFactory.cs
- VisualBasicReference.cs
- WindowsToolbarItemAsMenuItem.cs
- SafeHandles.cs
- XmlHierarchicalEnumerable.cs
- ValidationErrorEventArgs.cs
- DecimalConverter.cs
- SiteMap.cs
- CodeEventReferenceExpression.cs
- AnimationClockResource.cs
- XDeferredAxisSource.cs
- ProfileService.cs
- ResourceFallbackManager.cs
- PolygonHotSpot.cs
- TypeUnloadedException.cs
- InheritanceContextHelper.cs
- ObjectDataSourceWizardForm.cs
- SubMenuStyle.cs
- StreamingContext.cs
- CheckoutException.cs
- AmbientLight.cs
- StringPropertyBuilder.cs
- TraceLog.cs
- ToolboxItemCollection.cs
- ChtmlCommandAdapter.cs
- EnvironmentPermission.cs
- CqlParser.cs
- GradientSpreadMethodValidation.cs
- TableLayoutCellPaintEventArgs.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- FontInfo.cs
- MethodAccessException.cs
- Parser.cs
- HwndMouseInputProvider.cs
- HuffmanTree.cs
- ToolBar.cs
- CollectionContainer.cs
- ScrollEvent.cs
- EmptyEnumerator.cs
- ServiceHttpModule.cs
- DriveInfo.cs
- MdImport.cs
- DataGridViewCheckBoxCell.cs
- X509CertificateInitiatorClientCredential.cs
- WizardForm.cs
- XmlSchemaExporter.cs
- PlacementWorkspace.cs
- InternalSendMessage.cs
- XmlDataSourceView.cs
- ServiceBusyException.cs
- latinshape.cs
- MenuCommand.cs
- StateRuntime.cs
- StringInfo.cs
- EmbeddedMailObject.cs
- CanonicalFontFamilyReference.cs
- ImageBrush.cs
- WindowsTitleBar.cs
- XsdDataContractExporter.cs
- transactioncontext.cs
- IdnMapping.cs
- WorkflowServiceBuildProvider.cs
- PeerApplicationLaunchInfo.cs
- SqlConnection.cs
- OdbcParameterCollection.cs
- ListBox.cs
- SafeNativeMethodsMilCoreApi.cs
- OleDbParameterCollection.cs
- ComplexBindingPropertiesAttribute.cs
- JavaScriptSerializer.cs
- RepeaterCommandEventArgs.cs
- SizeAnimationUsingKeyFrames.cs
- OutOfMemoryException.cs
- Grant.cs
- Vars.cs
- SystemIPInterfaceProperties.cs
- SafeLibraryHandle.cs
- IdentityManager.cs
- DrawingAttributesDefaultValueFactory.cs
- Vector3D.cs
- _SecureChannel.cs
- DesignerEditorPartChrome.cs
- KnownTypeAttribute.cs
- IgnoreSectionHandler.cs
- DesignerDataConnection.cs
- ListItemCollection.cs