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
- NoClickablePointException.cs
- PrePrepareMethodAttribute.cs
- CodeSubDirectoriesCollection.cs
- StandardTransformFactory.cs
- ApplicationSecurityManager.cs
- RequiredAttributeAttribute.cs
- HostSecurityManager.cs
- BaseTreeIterator.cs
- TrackingStringDictionary.cs
- GeneralTransform3D.cs
- SecurityContext.cs
- Compiler.cs
- TreeWalkHelper.cs
- XmlSchemaException.cs
- ScriptControlManager.cs
- MenuItem.cs
- IEnumerable.cs
- TcpWorkerProcess.cs
- dtdvalidator.cs
- LocatorGroup.cs
- IgnoreFileBuildProvider.cs
- OdbcRowUpdatingEvent.cs
- DataGridViewRowStateChangedEventArgs.cs
- XamlReaderHelper.cs
- RoleGroup.cs
- VerticalAlignConverter.cs
- SiteMapNodeCollection.cs
- TypeExtensionConverter.cs
- DocumentSequence.cs
- MonitorWrapper.cs
- WebPartAuthorizationEventArgs.cs
- WinEventHandler.cs
- LineBreak.cs
- ToolboxItemAttribute.cs
- DataTemplateSelector.cs
- ParserStreamGeometryContext.cs
- BitmapCache.cs
- Accessors.cs
- VirtualPathProvider.cs
- TypeValidationEventArgs.cs
- TextCompositionManager.cs
- WriteableBitmap.cs
- SqlConnectionManager.cs
- IntSecurity.cs
- UserNameSecurityTokenParameters.cs
- EntitySetBaseCollection.cs
- SubqueryRules.cs
- SessionParameter.cs
- GridViewSelectEventArgs.cs
- AnimationClock.cs
- AdapterDictionary.cs
- FontFamily.cs
- ObjectDataSourceFilteringEventArgs.cs
- Literal.cs
- ACE.cs
- SessionViewState.cs
- WebPartsPersonalizationAuthorization.cs
- CommonProperties.cs
- Viewport2DVisual3D.cs
- ValidationPropertyAttribute.cs
- CodeDirectionExpression.cs
- RequestContext.cs
- XDRSchema.cs
- invalidudtexception.cs
- DynamicValidator.cs
- EventToken.cs
- PerfService.cs
- XmlIlTypeHelper.cs
- ModuleBuilder.cs
- Util.cs
- ViewPort3D.cs
- XmlComment.cs
- SqlUserDefinedAggregateAttribute.cs
- RemotingSurrogateSelector.cs
- AutomationPatternInfo.cs
- ItemContainerProviderWrapper.cs
- CallbackHandler.cs
- BooleanAnimationBase.cs
- TransformProviderWrapper.cs
- WebContext.cs
- DataFieldConverter.cs
- DataGrid.cs
- diagnosticsswitches.cs
- ZipIOExtraFieldPaddingElement.cs
- ExpressionBuilder.cs
- CompoundFileDeflateTransform.cs
- AuthenticationModulesSection.cs
- LazyTextWriterCreator.cs
- ImpersonationContext.cs
- SAPIEngineTypes.cs
- SqlRowUpdatedEvent.cs
- ChangePassword.cs
- XdrBuilder.cs
- DictationGrammar.cs
- CommonDialog.cs
- PersonalizationStateQuery.cs
- SafeUserTokenHandle.cs
- MachineKeyValidationConverter.cs
- ChangePassword.cs
- QueryAsyncResult.cs