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
- __ConsoleStream.cs
- NumberFunctions.cs
- ResolveNameEventArgs.cs
- RedirectionProxy.cs
- SQLInt64Storage.cs
- TableLayoutSettingsTypeConverter.cs
- ConversionContext.cs
- input.cs
- XmlSchemaCollection.cs
- DbTransaction.cs
- NativeMethods.cs
- Paragraph.cs
- VirtualizingStackPanel.cs
- AuthenticationManager.cs
- StorageScalarPropertyMapping.cs
- SafeCryptHandles.cs
- ELinqQueryState.cs
- DependencyPropertyConverter.cs
- RegisteredExpandoAttribute.cs
- PopOutPanel.cs
- DynamicUpdateCommand.cs
- ProxyHelper.cs
- BoundColumn.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- Int16KeyFrameCollection.cs
- XPathNodeInfoAtom.cs
- ExtensionElementCollection.cs
- ResourceReferenceExpressionConverter.cs
- XmlComment.cs
- EntityTransaction.cs
- PagesSection.cs
- TracePayload.cs
- FamilyMap.cs
- ValuePattern.cs
- ObjectKeyFrameCollection.cs
- RelatedPropertyManager.cs
- ControlPaint.cs
- PreservationFileWriter.cs
- TextWriter.cs
- TraceShell.cs
- FocusChangedEventArgs.cs
- NamespaceTable.cs
- StylusPointProperties.cs
- Effect.cs
- SplineKeyFrames.cs
- TemplateXamlTreeBuilder.cs
- UserMapPath.cs
- ExpanderAutomationPeer.cs
- RegistryConfigurationProvider.cs
- XmlUrlResolver.cs
- WebPartsPersonalizationAuthorization.cs
- Thread.cs
- ClientUrlResolverWrapper.cs
- CodeTypeMember.cs
- ProfileProvider.cs
- MessageFormatterConverter.cs
- SessionStateModule.cs
- ComponentChangingEvent.cs
- StrongNameUtility.cs
- SizeAnimationUsingKeyFrames.cs
- ExpressionParser.cs
- CurrencyManager.cs
- PerfProviderCollection.cs
- ScrollProperties.cs
- _ConnectOverlappedAsyncResult.cs
- DecoderFallback.cs
- FontFamilyConverter.cs
- ContentFilePart.cs
- MethodImplAttribute.cs
- Effect.cs
- TakeQueryOptionExpression.cs
- XmlSerializerSection.cs
- DayRenderEvent.cs
- GridPattern.cs
- StorageEntitySetMapping.cs
- LocalizationCodeDomSerializer.cs
- QuaternionIndependentAnimationStorage.cs
- WindowsListViewGroupSubsetLink.cs
- CommandBinding.cs
- DecoderBestFitFallback.cs
- SubMenuStyleCollection.cs
- ChannelManager.cs
- PartBasedPackageProperties.cs
- EventManager.cs
- PassportIdentity.cs
- TryCatchDesigner.xaml.cs
- CheckoutException.cs
- ReadOnlyObservableCollection.cs
- Debugger.cs
- DetailsViewActionList.cs
- FactoryGenerator.cs
- MarkupProperty.cs
- CompiledRegexRunner.cs
- NavigationPropertySingletonExpression.cs
- State.cs
- RuntimeHelpers.cs
- DynamicRouteExpression.cs
- XPSSignatureDefinition.cs
- WebContext.cs
- FtpWebResponse.cs