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
- AnnotationComponentManager.cs
- Drawing.cs
- DynamicDataExtensions.cs
- TracePayload.cs
- Clipboard.cs
- sqlser.cs
- DesignerActionUIService.cs
- BackgroundFormatInfo.cs
- EntityCollectionChangedParams.cs
- ResponseBodyWriter.cs
- HwndSourceParameters.cs
- EditorBrowsableAttribute.cs
- cryptoapiTransform.cs
- IssuanceTokenProviderBase.cs
- IIS7UserPrincipal.cs
- GPPOINT.cs
- UserControl.cs
- HttpClientChannel.cs
- ParameterBuilder.cs
- ContractListAdapter.cs
- MultiSelector.cs
- Int64.cs
- ProviderManager.cs
- HttpCacheVary.cs
- ScriptReferenceEventArgs.cs
- Model3DGroup.cs
- SHA1.cs
- _HTTPDateParse.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- WebDescriptionAttribute.cs
- DocumentPageTextView.cs
- DaylightTime.cs
- _Events.cs
- SettingsContext.cs
- ImageClickEventArgs.cs
- ScriptReference.cs
- ColorTranslator.cs
- ECDiffieHellmanCng.cs
- WindowsStatic.cs
- MatrixAnimationBase.cs
- Size3DValueSerializer.cs
- Deflater.cs
- UInt64Storage.cs
- DetailsViewRow.cs
- RequestCacheManager.cs
- SettingsProviderCollection.cs
- UIElement3D.cs
- Polyline.cs
- Positioning.cs
- MergeLocalizationDirectives.cs
- RequestDescription.cs
- RelationshipDetailsRow.cs
- CodeSnippetTypeMember.cs
- XmlDataProvider.cs
- EventMappingSettingsCollection.cs
- AbandonedMutexException.cs
- RelationshipEndCollection.cs
- EntitySetBase.cs
- WindowProviderWrapper.cs
- DataGridViewColumnHeaderCell.cs
- SelectionChangedEventArgs.cs
- KeySplineConverter.cs
- DataServiceRequestOfT.cs
- PropertyAccessVisitor.cs
- XmlUtil.cs
- AspCompat.cs
- IsolatedStorageFileStream.cs
- HttpCookieCollection.cs
- ExpressionDumper.cs
- DrawingGroup.cs
- FacetDescriptionElement.cs
- ZipIOCentralDirectoryBlock.cs
- FormsAuthenticationEventArgs.cs
- ObjectSerializerFactory.cs
- XLinq.cs
- CodeStatementCollection.cs
- CookielessData.cs
- RegionData.cs
- ParseElementCollection.cs
- AndMessageFilter.cs
- DigitShape.cs
- SmtpNetworkElement.cs
- FullTextState.cs
- objectresult_tresulttype.cs
- mediaclock.cs
- ServerProtocol.cs
- HttpModuleActionCollection.cs
- HMACSHA384.cs
- CanonicalFontFamilyReference.cs
- SoapClientProtocol.cs
- ReadOnlyMetadataCollection.cs
- NetworkInformationException.cs
- TypographyProperties.cs
- MethodCallExpression.cs
- WebBrowserPermission.cs
- InfoCardRequestException.cs
- AutoResetEvent.cs
- DiscoveryReferences.cs
- KeyMatchBuilder.cs
- CodeNamespaceImport.cs