Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------- // 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
- baseshape.cs
- WebPartConnectionsCancelVerb.cs
- SqlAliasesReferenced.cs
- RedirectionProxy.cs
- UrlRoutingModule.cs
- SymmetricAlgorithm.cs
- Stroke.cs
- InvalidWorkflowException.cs
- SortedDictionary.cs
- WindowsListViewItemCheckBox.cs
- StatusBar.cs
- RangeValuePattern.cs
- MetafileHeader.cs
- DefaultPrintController.cs
- Char.cs
- SqlSelectClauseBuilder.cs
- XmlSchemaComplexContentExtension.cs
- HandoffBehavior.cs
- UriSection.cs
- XmlSchemaRedefine.cs
- EnumCodeDomSerializer.cs
- CompositeFontParser.cs
- DeferredReference.cs
- AppDomainFactory.cs
- HelpEvent.cs
- LookupNode.cs
- AdCreatedEventArgs.cs
- DirtyTextRange.cs
- HttpProcessUtility.cs
- ToolBar.cs
- DateTimeOffsetStorage.cs
- UnknownWrapper.cs
- DataSysAttribute.cs
- TextInfo.cs
- Quack.cs
- ListItemCollection.cs
- TextDecoration.cs
- CapabilitiesUse.cs
- HttpDebugHandler.cs
- CodeConditionStatement.cs
- UserControlParser.cs
- SqlLiftWhereClauses.cs
- TableSectionStyle.cs
- StateManagedCollection.cs
- SoapFault.cs
- CreateInstanceBinder.cs
- ColorBlend.cs
- DataStreamFromComStream.cs
- BeginEvent.cs
- ITextView.cs
- EventSinkHelperWriter.cs
- DataGridView.cs
- DuplicateWaitObjectException.cs
- SqlConnection.cs
- AutoCompleteStringCollection.cs
- SerialPort.cs
- MouseActionConverter.cs
- ForceCopyBuildProvider.cs
- DataStreams.cs
- MetadataItemCollectionFactory.cs
- FillRuleValidation.cs
- MouseGestureValueSerializer.cs
- WindowsRegion.cs
- ProjectionPlan.cs
- _NegoStream.cs
- DataSourceSelectArguments.cs
- TextTreeDeleteContentUndoUnit.cs
- AssociationTypeEmitter.cs
- RegexWorker.cs
- TypedDataSourceCodeGenerator.cs
- CrossSiteScriptingValidation.cs
- AudioDeviceOut.cs
- WindowsRichEditRange.cs
- HwndTarget.cs
- CheckBoxList.cs
- InputLangChangeEvent.cs
- SparseMemoryStream.cs
- D3DImage.cs
- ResourceCategoryAttribute.cs
- Exceptions.cs
- DetailsViewInsertEventArgs.cs
- DbMetaDataColumnNames.cs
- WebServiceFaultDesigner.cs
- DirectionalLight.cs
- RuntimeDelegateArgument.cs
- UriParserTemplates.cs
- ServiceBusyException.cs
- XmlSchemaSearchPattern.cs
- CopyAttributesAction.cs
- Drawing.cs
- KeyboardNavigation.cs
- XmlText.cs
- DbLambda.cs
- ObjectStorage.cs
- DataSourceHelper.cs
- Pair.cs
- DoubleLinkListEnumerator.cs
- DataGridViewCellParsingEventArgs.cs
- ImageAnimator.cs
- ParserContext.cs