Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Core.Presentation / System / Activities / Core / Presentation / ResizeGrip.cs / 1305376 / ResizeGrip.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Core.Presentation { using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; using System.Runtime; using System.Activities.Presentation.Model; using System.Activities.Presentation; using System.ComponentModel; //This class is visual representation of ResizeGrip like control, which is used in a Grid to allow resizing. class ResizeGrip : Control { public static readonly DependencyProperty IconProperty = DependencyProperty.Register("Icon", typeof(DrawingBrush), typeof(ResizeGrip)); public static readonly DependencyProperty ParentFlowchartDesignerProperty = DependencyProperty.Register("ParentFlowchartDesigner", typeof(FlowchartDesigner), typeof(ResizeGrip)); public static readonly DependencyProperty ParentGridProperty = DependencyProperty.Register("ParentGrid", typeof(Grid), typeof(ResizeGrip)); public static readonly DependencyProperty DisabledProperty = DependencyProperty.Register("Disabled", typeof(bool), typeof(ResizeGrip), new UIPropertyMetadata(false)); Point offset; public DrawingBrush Icon { get { return (DrawingBrush)GetValue(IconProperty); } set { SetValue(IconProperty, value); } } public FlowchartDesigner ParentFlowchartDesigner { get { return (FlowchartDesigner)GetValue(ParentFlowchartDesignerProperty); } set { SetValue(ParentFlowchartDesignerProperty, value); } } public Grid ParentGrid { get { return (Grid)GetValue(ParentGridProperty); } set { SetValue(ParentGridProperty, value); } } public bool Disabled { get { return (bool)GetValue(DisabledProperty); } set { SetValue(DisabledProperty, value); } } protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e) { if (!this.Disabled) { this.Cursor = Cursors.SizeNWSE; this.offset = e.GetPosition(this); this.CaptureMouse(); e.Handled = true; } base.OnPreviewMouseLeftButtonDown(e); } protected override void OnMouseMove(MouseEventArgs args) { base.OnMouseMove(args); if (!this.Disabled) { if (args.LeftButton == MouseButtonState.Pressed && this.IsMouseCaptured) { FlowchartDesigner flowchartDesigner = this.ParentFlowchartDesigner; FreeFormPanel panel = flowchartDesigner.panel; Grid flowchartGrid = this.ParentGrid; Point currentPosition = Mouse.GetPosition(flowchartGrid); currentPosition.Offset(this.offset.X, this.offset.Y); flowchartDesigner.FlowchartWidth = Math.Min(Math.Max(panel.RequiredWidth, currentPosition.X), flowchartGrid.MaxWidth); flowchartDesigner.FlowchartHeight = Math.Min(Math.Max(panel.RequiredHeight, currentPosition.Y), flowchartGrid.MaxHeight); } } } protected override void OnPreviewMouseLeftButtonUp(MouseButtonEventArgs e) { if (!this.Disabled) { FlowchartDesigner flowchartDesigner = this.ParentFlowchartDesigner; ModelItem flowchartModelItem = this.ParentFlowchartDesigner.ModelItem; using (ModelEditingScope scope = flowchartModelItem.BeginEdit(SR.FCResizeUndoUnitName)) { TypeDescriptor.GetProperties(flowchartModelItem)[FlowchartSizeFeature.WidthPropertyName].SetValue(flowchartModelItem, flowchartDesigner.FlowchartWidth); TypeDescriptor.GetProperties(flowchartModelItem)[FlowchartSizeFeature.HeightPropertyName].SetValue(flowchartModelItem, flowchartDesigner.FlowchartHeight); scope.Complete(); } Mouse.OverrideCursor = null; Mouse.Capture(null); e.Handled = true; } base.OnPreviewMouseLeftButtonUp(e); } } } // 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
- _ChunkParse.cs
- NCryptNative.cs
- RoleGroupCollection.cs
- DataGridPreparingCellForEditEventArgs.cs
- WindowsAltTab.cs
- ConfigViewGenerator.cs
- TranslateTransform3D.cs
- CompositionTarget.cs
- SerialStream.cs
- SqlDataSourceSelectingEventArgs.cs
- DataColumnMapping.cs
- GuidTagList.cs
- ObjectNavigationPropertyMapping.cs
- IdentityModelStringsVersion1.cs
- SnapLine.cs
- VScrollProperties.cs
- ObjectCacheHost.cs
- ClientRoleProvider.cs
- VirtualizingStackPanel.cs
- TextEncodedRawTextWriter.cs
- StreamingContext.cs
- DefaultWorkflowLoaderService.cs
- PageCanvasSize.cs
- Compensate.cs
- StylusCollection.cs
- HtmlTableCell.cs
- HwndAppCommandInputProvider.cs
- CqlIdentifiers.cs
- NegotiationTokenAuthenticatorStateCache.cs
- FontUnitConverter.cs
- TrustSection.cs
- SctClaimSerializer.cs
- FilterInvalidBodyAccessException.cs
- Int32.cs
- ControlUtil.cs
- ApplyHostConfigurationBehavior.cs
- XPathPatternBuilder.cs
- RemotingConfiguration.cs
- ObjectQueryState.cs
- SqlRowUpdatingEvent.cs
- SqlGenericUtil.cs
- ColorConvertedBitmapExtension.cs
- PeerNameRecordCollection.cs
- AssemblyAttributes.cs
- ReadOnlyMetadataCollection.cs
- EventLogConfiguration.cs
- PropertyValue.cs
- BamlLocalizableResource.cs
- _TimerThread.cs
- BamlResourceContent.cs
- httpserverutility.cs
- Util.cs
- DelegatingMessage.cs
- X509CertificateCollection.cs
- ReflectTypeDescriptionProvider.cs
- DeriveBytes.cs
- FontConverter.cs
- Latin1Encoding.cs
- DropShadowEffect.cs
- Permission.cs
- LineUtil.cs
- DBDataPermission.cs
- EntitySetRetriever.cs
- TypeBrowserDialog.cs
- ModuleElement.cs
- NavigatingCancelEventArgs.cs
- ListViewDeletedEventArgs.cs
- Cloud.cs
- FloaterBaseParagraph.cs
- MembershipUser.cs
- Point3DAnimation.cs
- SQLBinary.cs
- NetDataContractSerializer.cs
- ActivityCodeDomReferenceService.cs
- WindowsTreeView.cs
- EventRecord.cs
- BitmapImage.cs
- ProviderSettings.cs
- CodeMemberMethod.cs
- PageHandlerFactory.cs
- ContentElement.cs
- Parameter.cs
- HashCodeCombiner.cs
- Empty.cs
- infer.cs
- GridViewDeletedEventArgs.cs
- SecurityChannelFactory.cs
- ActivityExecutorOperation.cs
- WindowsPen.cs
- WebPartTransformerAttribute.cs
- EntityCollection.cs
- DesignerLoader.cs
- CompilerError.cs
- BasicExpandProvider.cs
- ListControlConvertEventArgs.cs
- SamlAttributeStatement.cs
- XmlSchemaGroup.cs
- GlyphInfoList.cs
- GridProviderWrapper.cs
- BooleanStorage.cs