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
- Collection.cs
- StickyNote.cs
- GridViewCommandEventArgs.cs
- GacUtil.cs
- ErrorHandler.cs
- GradientSpreadMethodValidation.cs
- COM2ComponentEditor.cs
- WorkItem.cs
- Oci.cs
- XmlSchemaSimpleTypeRestriction.cs
- TypeSystem.cs
- Vector.cs
- ContextMenuService.cs
- WindowsFormsHostAutomationPeer.cs
- PersonalizationState.cs
- UIAgentAsyncEndRequest.cs
- WorkflowServiceHostFactory.cs
- DBCSCodePageEncoding.cs
- Parser.cs
- XmlWhitespace.cs
- PrintEvent.cs
- QueryRewriter.cs
- ADMembershipProvider.cs
- FtpWebResponse.cs
- XmlSchemas.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- SlipBehavior.cs
- DashStyles.cs
- MouseGestureValueSerializer.cs
- ComNativeDescriptor.cs
- DocobjHost.cs
- LayoutEditorPart.cs
- ETagAttribute.cs
- NameSpaceExtractor.cs
- ObjectTag.cs
- ToolStripArrowRenderEventArgs.cs
- DiagnosticTraceRecords.cs
- RadialGradientBrush.cs
- serverconfig.cs
- TextLine.cs
- CryptoKeySecurity.cs
- Matrix.cs
- PenLineJoinValidation.cs
- EntityCommandDefinition.cs
- AmbientProperties.cs
- SHA512Managed.cs
- X500Name.cs
- Msmq3PoisonHandler.cs
- NotifyParentPropertyAttribute.cs
- ControlParameter.cs
- Roles.cs
- StrokeNode.cs
- Sql8ConformanceChecker.cs
- DBParameter.cs
- SmtpLoginAuthenticationModule.cs
- WebPartMinimizeVerb.cs
- SplayTreeNode.cs
- Mouse.cs
- TextCollapsingProperties.cs
- WindowsRichEdit.cs
- ECDiffieHellmanCng.cs
- RuleSettings.cs
- MatrixAnimationBase.cs
- ContractSearchPattern.cs
- ExternalDataExchangeService.cs
- Lease.cs
- AlgoModule.cs
- XsltSettings.cs
- XmlSchemaSet.cs
- SocketException.cs
- StatusBarPanelClickEvent.cs
- SafeProcessHandle.cs
- SQLDecimalStorage.cs
- EnvelopedPkcs7.cs
- GetChildSubtree.cs
- Link.cs
- OracleConnectionFactory.cs
- WMICapabilities.cs
- CustomLineCap.cs
- StatusBar.cs
- WorkflowInstanceExtensionCollection.cs
- QueueProcessor.cs
- DefaultSection.cs
- BitmapInitialize.cs
- HostProtectionException.cs
- PermissionSet.cs
- TextBoxAutomationPeer.cs
- DesignerForm.cs
- GenericRootAutomationPeer.cs
- SqlFunctionAttribute.cs
- BackEase.cs
- EntityDataReader.cs
- CellParagraph.cs
- BaseCollection.cs
- EdmEntityTypeAttribute.cs
- ReferenceService.cs
- HttpWebRequest.cs
- NullableIntAverageAggregationOperator.cs
- RefType.cs
- WrappedKeySecurityTokenParameters.cs