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
- DbUpdateCommandTree.cs
- MetadataProperty.cs
- ResourceWriter.cs
- String.cs
- BindingElement.cs
- AnnotationMap.cs
- ShaderRenderModeValidation.cs
- EventWaitHandle.cs
- Graph.cs
- FontStretches.cs
- sqlcontext.cs
- wgx_render.cs
- BufferBuilder.cs
- TemplateBindingExpressionConverter.cs
- Validator.cs
- MailAddress.cs
- MembershipAdapter.cs
- StringConcat.cs
- XslCompiledTransform.cs
- StringTraceRecord.cs
- _OSSOCK.cs
- OptimisticConcurrencyException.cs
- ObjectCloneHelper.cs
- SQLInt64.cs
- RC2.cs
- RSAPKCS1SignatureDeformatter.cs
- SymbolType.cs
- GuidConverter.cs
- CodeTypeReferenceCollection.cs
- SingletonInstanceContextProvider.cs
- WebControlAdapter.cs
- TextCollapsingProperties.cs
- DropShadowBitmapEffect.cs
- SHA1Managed.cs
- ExpressionBindingCollection.cs
- DataStreamFromComStream.cs
- BamlReader.cs
- Claim.cs
- SerializationAttributes.cs
- OleDbPropertySetGuid.cs
- DigitShape.cs
- ServiceModelActivity.cs
- DeploymentSectionCache.cs
- System.Data_BID.cs
- FloaterBaseParagraph.cs
- _ShellExpression.cs
- GrammarBuilderDictation.cs
- RecognizerInfo.cs
- ImageIndexConverter.cs
- EmptyCollection.cs
- HttpSessionStateWrapper.cs
- WorkflowItemsPresenter.cs
- ArraySubsetEnumerator.cs
- SqlProviderUtilities.cs
- Listen.cs
- Literal.cs
- TimersDescriptionAttribute.cs
- InvalidEnumArgumentException.cs
- Setter.cs
- SessionEndingEventArgs.cs
- EntitySqlQueryCacheEntry.cs
- Span.cs
- DocumentReference.cs
- Font.cs
- CacheMode.cs
- LogicalExpressionEditor.cs
- AddressingProperty.cs
- PointLight.cs
- BamlTreeMap.cs
- uribuilder.cs
- UdpSocketReceiveManager.cs
- AlternateViewCollection.cs
- WebConfigurationHost.cs
- CompositeActivityDesigner.cs
- SafeCryptoHandles.cs
- OnOperation.cs
- Triplet.cs
- BinaryNode.cs
- QuaternionAnimationUsingKeyFrames.cs
- SqlTriggerContext.cs
- HtmlInputRadioButton.cs
- HostProtectionPermission.cs
- complextypematerializer.cs
- ValidationSummary.cs
- RectangleConverter.cs
- DataTableCollection.cs
- DoubleStorage.cs
- XmlSchemaInfo.cs
- EasingKeyFrames.cs
- CachingHintValidation.cs
- SignatureGenerator.cs
- PropertyTab.cs
- WorkerRequest.cs
- BitmapEffectGeneralTransform.cs
- Knowncolors.cs
- PaintEvent.cs
- ColorTransformHelper.cs
- QueryConverter.cs
- StreamAsIStream.cs
- XmlQueryRuntime.cs